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