2842 {
2845 const int nb_integration_pts = getGaussPtsSlave().size2();
2847 xi_grad_mat.resize(2, nb_integration_pts, false);
2848 if (type == MBVERTEX)
2849 xi_grad_mat.clear();
2850
2852
2853 if (nb_dofs) {
2854
2855 auto t_diff_lambda_xi = getFTensor1FromMat<2>(xi_grad_mat);
2856
2857 for (size_t gg = 0; gg != nb_integration_pts; ++gg) {
2860 for (size_t bb = 0; bb != nb_dofs; ++bb) {
2861 t_diff_lambda_xi(
I) += t_diff_base(
I) * t_data;
2862 ++t_data;
2863 ++t_diff_base;
2864 }
2865 ++t_diff_lambda_xi;
2866 }
2867 }
2868
2870}
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
constexpr IntegrationType I
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > getFTensor1DiffN(const FieldApproximationBase base)
Get derivatives of base functions.
const VectorDouble & getFieldData() const
get dofs values
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0FieldData()
Resturn scalar files as a FTensor of rank 0.