v0.13.1
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
OpFacesFluxes Struct Reference
Inheritance diagram for OpFacesFluxes:
[legend]
Collaboration diagram for OpFacesFluxes:
[legend]

Public Member Functions

 OpFacesFluxes (double &div)
 
MoFEMErrorCode doWork (int side, EntityType type, EntitiesFieldData::EntData &data)
 

Public Attributes

doubledIv
 

Detailed Description

Examples
hdiv_divergence_operator.cpp.

Definition at line 31 of file hdiv_divergence_operator.cpp.

Constructor & Destructor Documentation

◆ OpFacesFluxes()

OpFacesFluxes::OpFacesFluxes ( double div)
inline

Definition at line 35 of file hdiv_divergence_operator.cpp.

36 : FaceElementForcesAndSourcesCore::UserDataOperator(
37 "HDIV", UserDataOperator::OPROW),
38 dIv(div) {}

Member Function Documentation

◆ doWork()

MoFEMErrorCode OpFacesFluxes::doWork ( int  side,
EntityType  type,
EntitiesFieldData::EntData data 
)
Examples
hdiv_divergence_operator.cpp.

Definition at line 213 of file hdiv_divergence_operator.cpp.

214 {
216
217 if (CN::Dimension(type) != 2)
219
220 int nb_gauss_pts = data.getN().size1();
221 int nb_dofs = data.getFieldData().size();
222
223 for (int gg = 0; gg < nb_gauss_pts; gg++) {
224 for (int dd = 0; dd < nb_dofs; dd++) {
225
226 double w = getGaussPts()(2, gg);
227 const double n0 = getNormalsAtGaussPts(gg)[0];
228 const double n1 = getNormalsAtGaussPts(gg)[1];
229 const double n2 = getNormalsAtGaussPts(gg)[2];
230 if (getFEType() == MBTRI) {
231 w *= 0.5;
232 }
233
234 dIv += (n0 * data.getVectorN<3>(gg)(dd, 0) +
235 n1 * data.getVectorN<3>(gg)(dd, 1) +
236 n2 * data.getVectorN<3>(gg)(dd, 2)) *
237 w;
238 }
239 }
240
242}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:447
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:440
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > dd(const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
Definition: ddTensor0.hpp:33
double w(const double g, const double t)
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
const VectorDouble & getFieldData() const
get dofs values
const MatrixAdaptor getVectorN(const FieldApproximationBase base, const int gg)
get Hdiv of base functions at Gauss pts

Member Data Documentation

◆ dIv

double& OpFacesFluxes::dIv
Examples
hdiv_divergence_operator.cpp.

Definition at line 34 of file hdiv_divergence_operator.cpp.


The documentation for this struct was generated from the following file: