#include <src/finite_elements/FormsIntegrators.hpp>
|
| OpBaseImpl (const std::string row_field_name, const std::string col_field_name, const OpType type, boost::shared_ptr< Range > ents_ptr=nullptr) |
|
MoFEMErrorCode | doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntData &row_data, EntData &col_data) |
| Do calculations for the left hand side. More...
|
|
MoFEMErrorCode | doWork (int row_side, EntityType row_type, EntData &row_data) |
| Do calculations for the right hand side. More...
|
|
void | setAssembleTo (AssembleTo a_to) |
| Where to assemble. More...
|
|
template<
AssemblyType A, typename EleOp>
struct MoFEM::OpBaseImpl< A, EleOp >
- Examples
- PlasticOps.hpp, ThermoElasticOps.hpp, approx_sphere.cpp, free_surface.cpp, level_set.cpp, plastic.cpp, poisson_2d_homogeneous.hpp, shallow_wave.cpp, and thermo_elastic.cpp.
Definition at line 170 of file FormsIntegrators.hpp.
◆ EntData
◆ OpType
◆ AssembleTo
◆ OpBaseImpl()
Definition at line 174 of file FormsIntegrators.hpp.
176 : EleOp(row_field_name, col_field_name, type, false),
boost::shared_ptr< Range > entsPtr
Entities on which element is run.
◆ aSsemble() [1/2]
Reimplemented in MoFEM::OpBaseImpl< USER_ASSEMBLE, EleOp >.
Definition at line 447 of file FormsIntegrators.hpp.
447 {
452
453 return VecSetValues<AssemblyTypeSelector<A>>(this->getKSPf(), data,
454 this->
locF, ADD_VALUES);
455}
VectorDouble locF
local entity vector
TimeFun timeScalingFun
assumes that time variable is set
FEFun feScalingFun
assumes that time variable is set
◆ aSsemble() [2/2]
Reimplemented in MoFEM::OpBaseImpl< USER_ASSEMBLE, EleOp >.
Definition at line 418 of file FormsIntegrators.hpp.
420 {
422
427
428
429 if (transpose) {
431 false);
433 CHKERR MatSetValues<AssemblyTypeSelector<A>>(
435 }
436
438
439 CHKERR MatSetValues<AssemblyTypeSelector<A>>(
441 }
442
444}
#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.
MatrixDouble locMatTranspose
local entity block matrix
auto matSelector()
Select matrix.
MatrixDouble locMat
local entity block matrix
◆ doWork() [1/2]
Do calculations for the right hand side.
- Parameters
-
row_side | |
row_type | |
row_data | |
- Returns
- MoFEMErrorCode
Definition at line 387 of file FormsIntegrators.hpp.
388 {
390
394 }
395
396
400
403
405
407
410
412
415}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
const VectorInt & getIndices() const
Get global indices of dofs on entity.
int rowSide
row side number
int nbRows
number of dofs on rows
int nbIntegrationPts
number of integration points
virtual MoFEMErrorCode aSsemble(EntData &row_data, EntData &col_data, const bool trans)
virtual MoFEMErrorCode iNtegrate(EntData &row_data, EntData &col_data)
Integrate grad-grad operator.
int nbRowBaseFunctions
number or row base functions
EntityType rowType
row type
◆ doWork() [2/2]
Do calculations for the left hand side.
- 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 |
col_type | type of column entity |
row_data | data for row |
col_data | data for column |
- Returns
- error code
Definition at line 333 of file FormsIntegrators.hpp.
336 {
338
342 }
343
344
345 nbRows = row_data.getIndices().size();
346
351
352 nbCols = col_data.getIndices().size();
353
358
360
362
364
366
368
369
370 auto check_if_assemble_transpose = [&] {
371 if (this->sYmm) {
372 if (row_side != col_side || row_type != col_type)
373 return true;
374 else
375 return false;
377 return true;
378 }
379
380 return false;
381 };
382 CHKERR aSsemble(row_data, col_data, check_if_assemble_transpose());
384}
int colSide
column side number
EntityType colType
column type
int nbCols
number if dof on column
◆ getLocMat()
◆ getNf()
◆ iNtegrate() [1/2]
Class dedicated to integrate operator.
- Parameters
-
data | entity data on element row |
- Returns
- error code
Reimplemented in LevelSet::OpRhsDomain, OpDomainResidualVector, Example::OpRadiationRhs, Example::OpFluxRhs, MoFEM::OpSourceImpl< 1, 1, GAUSS, SourceFunctionSpecialization::S< OpBase > >, MoFEM::OpSourceImpl< 1, FIELD_DIM, GAUSS, SourceFunctionSpecialization::S< OpBase > >, MoFEM::OpSourceImpl< 3, FIELD_DIM, GAUSS, SourceFunctionSpecialization::S< OpBase > >, MoFEM::OpBaseTimesScalarImpl< 1, S, GAUSS, OpBase >, MoFEM::OpBaseTimesVectorImpl< 1, FIELD_DIM, S, GAUSS, OpBase >, MoFEM::OpBaseTimesVectorImpl< 3, FIELD_DIM, S, GAUSS, OpBase >, MoFEM::OpGradTimesTensorImpl< 1, 1, SPACE_DIM, S, GAUSS, OpBase >, MoFEM::OpGradTimesTensorImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >, MoFEM::OpGradTimesSymTensorImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >, MoFEM::OpMixDivTimesUImpl< 3, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMixDivTimesUImpl< 3, 1, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMixDivTimesUImpl< 1, FIELD_DIM, FIELD_DIM, GAUSS, OpBase >, MoFEM::OpMixVecTimesDivLambdaImpl< SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMixTensorTimesGradUImpl< SPACE_DIM, GAUSS, OpBase >, MoFEM::OpNormalMixVecTimesScalarImpl< 3, GAUSS, OpBase >, MoFEM::OpNormalMixVecTimesScalarImpl< 2, GAUSS, OpBase >, MoFEM::OpConvectiveTermRhsImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpConvectiveTermRhsImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >, OpRhs, and OpURhs.
Definition at line 284 of file FormsIntegrators.hpp.
◆ iNtegrate() [2/2]
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
Reimplemented in LevelSet::OpLhsDomain, OpDomainTangentMatrix, Example::OpRadiationLhs, MoFEM::OpGradGradImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpGradGradImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMassImpl< 1, 1, GAUSS, OpBase >, MoFEM::OpMassImpl< 1, FIELD_DIM, GAUSS, OpBase >, MoFEM::OpMassImpl< 3, BASE_DIM, GAUSS, OpBase >, MoFEM::OpMassImpl< 3, 9, GAUSS, OpBase >, MoFEM::OpGradSymTensorGradImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >, MoFEM::OpGradTensorGradImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >, MoFEM::OpGradGradSymTensorGradGradImpl< 1, 1, SPACE_DIM, S, GAUSS, OpBase >, MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMixDivTimesVecImpl< SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMixScalarTimesDivImpl< SPACE_DIM, GAUSS, OpBase, COORDINATE_SYSTEM >, MoFEM::OpMixVectorTimesGradImpl< 3, SPACE_DIM, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMixVectorTimesGradImpl< 1, SPACE_DIM, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpMixTensorTimesGradImpl< SPACE_DIM, GAUSS, OpBase >, MoFEM::OpConvectiveTermLhsDuImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpConvectiveTermLhsDyImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpConvectiveTermLhsDuImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >, MoFEM::OpConvectiveTermLhsDyImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >, OpLhs, OpULhs_dU, and OpULhs_dH.
Definition at line 272 of file FormsIntegrators.hpp.
◆ matSelector()
Select matrix.
- Returns
- auto
Definition at line 227 of file FormsIntegrators.hpp.
227 {
230 return this->getKSPA();
232 return this->getKSPB();
233 }
234 return this->getKSPB();
235 };
enum AssembleTo assembleTo
◆ setAssembleTo()
Where to assemble.
- Note
- Default assembly is BMat, i.e. preconditioner matrix
- Parameters
-
- Returns
- MoFEMErrorCode
Definition at line 217 of file FormsIntegrators.hpp.
◆ assembleTo
◆ assembleTranspose
◆ colSide
◆ colType
◆ entsPtr
◆ feScalingFun
◆ locF
◆ locMat
◆ locMatTranspose
◆ nbCols
◆ nbIntegrationPts
◆ nbRowBaseFunctions
◆ nbRows
◆ onlyTranspose
◆ rowSide
◆ rowType
◆ timeScalingFun
The documentation for this struct was generated from the following file: