31 {
33
34 const int nb_dofs = data.getIndices().size();
35
36 if (nb_dofs) {
37
38
39 auto &nf = AssemblyDomainEleOp::locF;
40
41 const double area = getMeasure();
42
43
44 const int nb_integration_points = getGaussPts().size2();
45
46 auto t_w = getFTensor0IntegrationWeight();
47
48
49 auto t_base_diff = data.getFTensor1DiffN<DIM>();
50
52
53 auto t_h = getFTensor0FromVec(*
hPtr);
54 for (int gg = 0; gg != nb_integration_points; gg++) {
55 auto t_nf = getFTensor1FromPtr<DIM>(&nf[0]);
56
58
59 for (int rr = 0; rr != nb_dofs / DIM; rr++) {
60 t_nf(
i) -= t_base_diff(
i) *
a;
61
62
63 ++t_base_diff;
64 ++t_nf;
65 }
66
67
68 ++t_w;
69 ++t_h;
70 }
71 }
72
74 }
#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()
FTensor::Index< 'i', SPACE_DIM > i