210 {
213 if (
entsPtr->find(AssemblyBoundaryEleOp::getFEEntityHandle()) ==
216 }
217 const double area = getMeasure();
218 auto t_w = getFTensor0IntegrationWeight();
219 auto t_row_base = row_data.getFTensor0N();
220 auto t_grad_h = getFTensor1FromMat<SPACE_DIM>(*
gradHPtr);
221 auto t_coords = getFTensor1CoordsAtGaussPts();
222
224
225 for (int gg = 0; gg != nbIntegrationPts; gg++) {
226
227 const double r = t_coords(0);
229 const double h_grad_norm = sqrt(t_grad_h(
i) * t_grad_h(
i) +
eps);
230 const double cos_angle = std::cos(M_PI *
wettingAngle / 180);
231 const double rhs_wetting = s *
eta2 * h_grad_norm * cos_angle;
232
233
234
235 int bb = 0;
236 for (; bb != nbRows; ++bb) {
237 locF[bb] += alpha * t_row_base * rhs_wetting;
238 ++t_row_base;
239 }
240
241 for (; bb < nbRowBaseFunctions; ++bb)
242 ++t_row_base;
243
244 ++t_w;
245 ++t_grad_h;
246 ++t_coords;
247 }
248
250 }
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#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()
auto cylindrical
[cylindrical]
auto wetting_angle_sub_stepping
[cylindrical]
FTensor::Index< 'i', SPACE_DIM > i