 |
| v0.14.0
|
Implementation of basic interface for rapid problem implementation.
More...
Implementation of basic interface for rapid problem implementation.
◆ createKSP()
◆ createSNES()
Create SNES (nonlinear) solver.
- Parameters
-
- Returns
- SmartPetscObj<SNES>
Definition at line 165 of file PipelineManager.cpp.
167 Simple *
simple = m_field.getInterface<Simple>();
169 auto copy_dm_struture = [&](
auto simple_dm) {
180 dm = copy_dm_struture(
simple->getDM());
185 auto set_dm_section = [&](
auto dm) {
188 m_field.getInterface<ISManager>()->sectionCreate(prb_ptr->
getName());
189 CHKERR DMSetSection(dm, section);
192 CHKERR set_dm_section(dm);
196 boost::shared_ptr<FEMethod>
null;
227 CHKERR SNESSetDM(snes, dm);
◆ createTSEX()
Create TS (time) explit solver.
- Parameters
-
- Returns
- SmartPetscObj<TS>
Definition at line 254 of file PipelineManager.cpp.
256 Simple *
simple = m_field.getInterface<Simple>();
258 auto copy_dm_struture = [&](
auto simple_dm) {
269 dm = copy_dm_struture(
simple->getDM());
274 auto set_dm_section = [&](
auto dm) {
277 m_field.getInterface<ISManager>()->sectionCreate(prb_ptr->
getName());
278 CHKERR DMSetSection(dm, section);
281 CHKERR set_dm_section(dm);
283 boost::shared_ptr<FEMethod>
null;
◆ createTSIM()
Create TS (time) implicit solver.
- Parameters
-
- Returns
- SmartPetscObj<TS>
Definition at line 309 of file PipelineManager.cpp.
311 Simple *
simple = m_field.getInterface<Simple>();
313 auto copy_dm_struture = [&](
auto simple_dm) {
324 dm = copy_dm_struture(
simple->getDM());
329 auto set_dm_section = [&](
auto dm) {
332 m_field.getInterface<ISManager>()->sectionCreate(prb_ptr->
getName());
333 CHKERR DMSetSection(dm, section);
336 CHKERR set_dm_section(dm);
338 boost::shared_ptr<FEMethod>
null;
◆ createTSIM2()
Create TS (time) solver for second order equation in time.
- Parameters
-
- Returns
- SmartPetscObj<TS>
Definition at line 376 of file PipelineManager.cpp.
378 Simple *
simple = m_field.getInterface<Simple>();
380 auto copy_dm_struture = [&](
auto simple_dm) {
391 dm = copy_dm_struture(
simple->getDM());
396 auto set_dm_section = [&](
auto dm) {
399 m_field.getInterface<ISManager>()->sectionCreate(prb_ptr->
getName());
400 CHKERR DMSetSection(dm, section);
403 CHKERR set_dm_section(dm);
405 boost::shared_ptr<FEMethod>
null;
◆ createTSIMEX()
Create TS (time) implicit-explicit solver.
- Parameters
-
- Returns
- SmartPetscObj<TS>
Definition at line 443 of file PipelineManager.cpp.
445 Simple *
simple = m_field.getInterface<Simple>();
447 auto copy_dm_struture = [&](
auto simple_dm) {
458 dm = copy_dm_struture(
simple->getDM());
463 auto set_dm_section = [&](
auto dm) {
466 m_field.getInterface<ISManager>()->sectionCreate(prb_ptr->
getName());
467 CHKERR DMSetSection(dm, section);
470 CHKERR set_dm_section(dm);
472 boost::shared_ptr<FEMethod>
null;
◆ getOpBoundaryExplicitRhsPipeline()
Get the Op Bondary Rhs Pipeline object for implicit-explicit G term.
- Template Parameters
-
- Returns
- boost::ptr_deque<UserDataOperator>&
Definition at line 992 of file PipelineManager.hpp.
993 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
◆ getOpBoundaryLhsPipeline()
Get the Op Boundary Lhs Pipeline object.
- Template Parameters
-
- Returns
- boost::ptr_deque<UserDataOperator>&
- Examples
- helmholtz.cpp.
Definition at line 872 of file PipelineManager.hpp.
873 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
◆ getOpBoundaryRhsPipeline()
◆ getOpDomainExplicitRhsPipeline()
Get the Op Domain Rhs Pipeline object for implicit-explicit G term.
- Template Parameters
-
- Returns
- boost::ptr_deque<UserDataOperator>&
Definition at line 968 of file PipelineManager.hpp.
969 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
◆ getOpDomainLhsPipeline()
◆ getOpDomainRhsPipeline()
◆ getOpSkeletonExplicitRhsPipeline()
Get the Op Skeleton Rhs Pipeline object for implicit-explicit G term.
- Template Parameters
-
- Returns
- boost::ptr_deque<UserDataOperator>&
Definition at line 1016 of file PipelineManager.hpp.
1017 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
◆ getOpSkeletonLhsPipeline()
Get the Op Skeleton Lhs Pipeline object.
- Returns
- boost::ptr_deque<UserDataOperator>&
- Examples
- level_set.cpp.
Definition at line 920 of file PipelineManager.hpp.
921 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
◆ getOpSkeletonRhsPipeline()
Get the Op Skeleton Rhs Pipeline object.
- Template Parameters
-
- Returns
- boost::ptr_deque<UserDataOperator>&
- Examples
- simple_l2_only.cpp.
Definition at line 944 of file PipelineManager.hpp.
945 return boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
◆ loopFiniteElements()
PetscErrorCode DMMoFEMKSPSetComputeRHS(DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
set KSP right hand side evaluation function
auto createTS(MPI_Comm comm)
auto createSNES(MPI_Comm comm)
auto getDMKspCtx(DM dm)
Get KSP context data structure used by DM.
PetscObject getPetscObject(T obj)
boost::shared_ptr< FEMethod > feBoundaryRhs
Element to assemble RHS side by integrating boundary.
boost::shared_ptr< FEMethod > feDomainLhs
Element to assemble LHS side by integrating domain.
auto createKSP(MPI_Comm comm)
PetscErrorCode DMMoFEMKSPSetComputeOperators(DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
Set KSP operators and push mofem finite element methods.
DeprecatedCoreInterface Interface
boost::shared_ptr< FEMethod > feBoundaryLhs
Element to assemble LHS side by integrating boundary.
#define CHKERR
Inline error check.
boost::shared_ptr< FEMethod > feMeshsetLhs
PetscErrorCode DMMoFEMTSSetIJacobian(DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
set TS Jacobian evaluation function
auto createDM(MPI_Comm comm, const std::string dm_type_name)
Creates smart DM object.
PetscErrorCode DMMoFEMTSSetI2Jacobian(DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
set TS Jacobian evaluation function
boost::shared_ptr< FEMethod > feDomainRhs
Element to assemble RHS side by integrating domain.
PetscErrorCode DMMoFEMTSSetI2Function(DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
set TS implicit function evaluation function
void simple(double P1[], double P2[], double P3[], double c[], const int N)
boost::shared_ptr< FEMethod > feBoundaryExplicitRhs
PetscErrorCode DMMoFEMSNESSetJacobian(DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
set SNES Jacobian evaluation function
boost::shared_ptr< FEMethod > feMeshsetExplicitRhs
boost::shared_ptr< FEMethod > feSkeletonLhs
Element to assemble LHS side by integrating skeleton.
boost::shared_ptr< FEMethod > feMeshsetRhs
PetscErrorCode DMMoFEMTSSetRHSFunction(DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
set TS the right hand side function
PetscErrorCode DMMoFEMTSSetIFunction(DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
set TS implicit function evaluation function
PetscErrorCode DMMoFEMGetProblemPtr(DM dm, const MoFEM::Problem **problem_ptr)
Get pointer to problem data structure.
boost::shared_ptr< FEMethod > feDomainExplicitRhs
Element to assemble explict Rhs for IMEX solver.
auto getDMSnesCtx(DM dm)
Get SNES context data structure used by DM.
keeps basic data about problem
PetscErrorCode DMMoFEMDuplicateDMCtx(DM dm, DM dm_duplicate)
Duplicate internal data struture.
boost::shared_ptr< FEMethod > feSkeletonRhs
Element to assemble RHS side by integrating skeleton.
PetscErrorCode DMoFEMLoopFiniteElements(DM dm, const char fe_name[], MoFEM::FEMethod *method, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr())
Executes FEMethod for finite elements in DM.
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
auto getDMTsCtx(DM dm)
Get TS context data structure used by DM.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
boost::shared_ptr< FEMethod > feSkeletonExplicitRhs
PetscErrorCode DMMoFEMSNESSetFunction(DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
set SNES residual evaluation function