Inherits FaceElementForcesAndSourcesCore::UserDataOperator.
◆ OpS()
◆ aSsemble()
Assemble local entity block matrix.
- Parameters
-
row_data | row data (consist base functions on row entity) |
col_data | column data (consist base functions on column entity) |
- Returns
- error code
- Examples
- analytical_poisson_field_split.cpp.
Definition at line 196 of file analytical_poisson_field_split.cpp.
200 const int *row_indices = &*row_data.getIndices().data().begin();
202 const int *col_indices = &*col_data.getIndices().data().begin();
203 Mat
B = getFEMethod()->ksp_B != PETSC_NULL ? getFEMethod()->ksp_B
204 : getFEMethod()->snes_B;
207 &*
locMat.data().begin(), ADD_VALUES);
213 &*
locMat.data().begin(), ADD_VALUES);
#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()
#define CHKERR
Inline error check.
constexpr auto MatSetValues
int nbRows
number of dofs on rows
int nbCols
number if dof on column
MatrixDouble locMat
local entity block matrix
bool isDiag
true if this block is on diagonal
◆ doWork()
Do calculations for give operator.
- Parameters
-
row_side | row side number (local number) of entity on element |
col_side | column side number (local number) of entity on element |
row_type | type of row entity MBVERTEX, MBEDGE, MBTRI or MBTET |
col_type | type of column entity MBVERTEX, MBEDGE, MBTRI or MBTET |
row_data | data for row |
col_data | data for column |
- Returns
- error code
- Examples
- analytical_poisson_field_split.cpp.
Definition at line 102 of file analytical_poisson_field_split.cpp.
108 nbRows = row_data.getIndices().size();
113 nbCols = col_data.getIndices().size();
120 if (row_side == col_side && row_type == col_type) {
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
int nbIntegrationPts
number of integration points
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
Integrate grad-grad operator.
MoFEMErrorCode aSsemble(EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
Assemble local entity block matrix.
◆ iNtegrate()
Integrate grad-grad operator.
- Parameters
-
row_data | row data (consist base functions on row entity) |
col_data | column data (consist base functions on column entity) |
- Returns
- error code
- Examples
- analytical_poisson_field_split.cpp.
Definition at line 151 of file analytical_poisson_field_split.cpp.
159 double area = getArea() *
bEta;
161 auto t_w = getFTensor0IntegrationWeight();
163 auto t_row_base = row_data.getFTensor0N();
167 const double alpha = t_w * area;
172 for (
int rr = 0; rr !=
nbRows; rr++) {
174 auto t_col_base = col_data.getFTensor0N(gg, 0);
176 for (
int cc = 0; cc !=
nbCols; cc++) {
178 a +=
alpha * t_row_base * t_col_base;
◆ bEta
◆ isDiag
◆ locMat
◆ nbCols
◆ nbIntegrationPts
int OpS::nbIntegrationPts |
|
private |
◆ nbRows
The documentation for this struct was generated from the following file: