|
| v0.14.0
|
|
static SmartPetscObj< KSP > | prjKsp |
|
static SmartPetscObj< Vec > | prjD |
|
static SmartPetscObj< Vec > | prjF |
|
static SmartPetscObj< DM > | prjDM |
|
static EshelbianCore * | epPtr |
|
static boost::shared_ptr< FEMethod > | preProcRhs |
|
Definition at line 9 of file TSElasticPostStep.cpp.
◆ postStepDestroy()
static MoFEMErrorCode TSElasticPostStep::postStepDestroy |
( |
| ) |
|
|
inlinestatic |
◆ postStepFun()
static MoFEMErrorCode TSElasticPostStep::postStepFun |
( |
TS |
ts | ) |
|
|
inlinestatic |
◆ postStepInitialise()
static MoFEMErrorCode TSElasticPostStep::postStepInitialise |
( |
EshelbianCore * |
ep_ptr | ) |
|
|
inlinestatic |
- Examples
- EshelbianPlasticity.cpp.
Definition at line 11 of file TSElasticPostStep.cpp.
16 auto create_post_step_ksp = [&]() {
21 using DomainEle = VolumeElementForcesAndSourcesCore;
23 using OpDomainMass = FormsIntegrators<DomainEleOp>::Assembly<
25 using OpRhs = FormsIntegrators<DomainEleOp>::Assembly<
26 PETSC>::LinearForm<GAUSS>::OpBaseTimesVector<1, 3, 1>;
27 auto fe_lhs = boost::make_shared<DomainEle>(ep_ptr->mField);
28 auto fe_rhs = boost::make_shared<DomainEle>(ep_ptr->mField);
30 fe_lhs->getUserPolynomialBase() =
31 boost::shared_ptr<BaseFunction>(
new CGGUserPolynomialBase());
32 fe_rhs->getUserPolynomialBase() =
33 boost::shared_ptr<BaseFunction>(
new CGGUserPolynomialBase());
35 fe_lhs->getOpPtrVector().push_back(
36 new OpDomainMass(ep_ptr->spatialH1Disp, ep_ptr->spatialH1Disp));
37 auto w_ptr = boost::make_shared<MatrixDouble>();
38 fe_rhs->getOpPtrVector().push_back(
39 new OpCalculateVectorFieldValues<3>(ep_ptr->spatialL2Disp, w_ptr));
40 fe_rhs->getOpPtrVector().push_back(
41 new OpRhs(ep_ptr->spatialH1Disp, w_ptr));
44 ep_ptr->elementVolumeName, fe_lhs,
47 ep_ptr->elementVolumeName, fe_rhs,
57 CHKERR KSPAppendOptionsPrefix(ksp,
"prjspatial_");
58 CHKERR KSPSetFromOptions(ksp);
59 CHKERR KSPSetDM(ksp, ep_ptr->dmPrjSpatial);
69 prjKsp = create_post_step_ksp();
72 prjDM = ep_ptr->dmPrjSpatial;
◆ preStepFun()
static MoFEMErrorCode TSElasticPostStep::preStepFun |
( |
TS |
ts | ) |
|
|
inlinestatic |
- Examples
- EshelbianPlasticity.cpp.
Definition at line 87 of file TSElasticPostStep.cpp.
89 MOFEM_LOG(
"EP", Sev::inform) <<
"Pre step";
92 CHKERR TSGetSolution(ts, &T);
94 auto zero_filed = [&](
auto name) {
96 auto is_mng =
epPtr->getInterface<ISManager>();
98 CHKERR is_mng->isCreateProblemFieldAndRankLocal(
100 const int *index_ptr;
101 CHKERR ISGetIndices(is, &index_ptr);
103 CHKERR ISGetLocalSize(is, &size);
106 for (
auto i = 0;
i != size;
i++) {
110 CHKERR ISRestoreIndices(is, &index_ptr);
114 switch (EshelbianCore::gradApperoximator) {
116 MOFEM_LOG(
"EP", Sev::verbose) <<
"Zeroing (large) fields";
121 MOFEM_LOG(
"EP", Sev::verbose) <<
"Zeroing (moderate) fields";
126 MOFEM_LOG(
"EP", Sev::verbose) <<
"Zeroing (small) fields";
◆ epPtr
EshelbianCore * TSElasticPostStep::epPtr |
|
staticprivate |
◆ preProcRhs
boost::shared_ptr< FEMethod > TSElasticPostStep::preProcRhs |
|
staticprivate |
◆ prjD
SmartPetscObj< Vec > TSElasticPostStep::prjD |
|
staticprivate |
◆ prjDM
SmartPetscObj< DM > TSElasticPostStep::prjDM |
|
staticprivate |
◆ prjF
SmartPetscObj< Vec > TSElasticPostStep::prjF |
|
staticprivate |
◆ prjKsp
SmartPetscObj< KSP > TSElasticPostStep::prjKsp |
|
staticprivate |
The documentation for this struct was generated from the following file:
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
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
PetscErrorCode DMoFEMMeshToLocalVector(DM dm, Vec l, InsertMode mode, ScatterMode scatter_mode)
set local (or ghosted) vector values on mesh for partition only
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.
FormsIntegrators< DomainEleOp >::Assembly< PETSC >::BiLinearForm< GAUSS >::OpMass< 1, FIELD_DIM > OpDomainMass
#define CHKERR
Inline error check.
auto createDMVector(DM dm)
Get smart vector from DM.
static SmartPetscObj< KSP > prjKsp
static EshelbianCore * epPtr
FTensor::Index< 'i', SPACE_DIM > i
static boost::shared_ptr< FEMethod > preProcRhs
static SmartPetscObj< Vec > prjF
#define MAX_DOFS_ON_ENTITY
Maximal number of DOFs on entity.
#define MOFEM_LOG(channel, severity)
Log.
SmartPetscObj< Vec > vectorDuplicate(Vec vec)
Create duplicate vector of smart vector.
ForcesAndSourcesCore::UserDataOperator UserDataOperator
static SmartPetscObj< Vec > prjD
const FTensor::Tensor2< T, Dim, Dim > Vec
ElementsAndOps< SPACE_DIM >::DomainEle DomainEle
#define MoFEMFunctionReturn(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 ...
static SmartPetscObj< DM > prjDM