148 {
150 using DL = DataLayoutTraits<DataLayout::GaussByCoeffs>;
151 auto t_full_stress =
154 auto t_w = OpBase::getFTensor0IntegrationWeight();
159 auto t_nf = OpBase::template getNf<2>();
160 const double alpha = 2 * M_PI * t_w * OpBase::getMeasure();
161 int rr = 0;
163 t_nf(N0) += alpha * t_row_base * t_full_stress(N2, N2);
164 ++t_nf;
165 ++t_row_base;
166 }
168 ++t_row_base;
169 ++t_full_stress;
170 ++t_w;
171 }
173 }
#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()
DataLayoutTraits< DataLayout::GaussByCoeffs > DL
decltype(GetFTensor2FromMatImpl< Tensor_Dim0, Tensor_Dim1, S, DL, M >::get(std::declval< M & >(), 0, 0)) GetFTensor2FromMatType
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N(const FieldApproximationBase base)
Get base function as Tensor0.
int nbRows
number of dofs on rows
int nbIntegrationPts
number of integration points
int nbRowBaseFunctions
number or row base functions