www.mooseframework.org
Functions
NonlinearSystemBase.C File Reference

Go to the source code of this file.

Functions

EXTERN_C_BEGIN PetscErrorCode DMCreate_Moose (DM)
 

Function Documentation

◆ DMCreate_Moose()

EXTERN_C_BEGIN PetscErrorCode DMCreate_Moose ( DM  )

Definition at line 2316 of file PetscDMMoose.C.

Referenced by DMMooseRegisterAll().

2317 {
2318  PetscErrorCode ierr;
2319  DM_Moose * dmm;
2320 
2321  PetscFunctionBegin;
2322  PetscValidHeaderSpecific(dm, DM_CLASSID, 1);
2323 #if PETSC_RELEASE_LESS_THAN(3, 18, 0)
2324  ierr = PetscNewLog(dm, &dmm);
2325  CHKERRQ(ierr);
2326 #else // PetscNewLog was deprecated
2327  ierr = PetscNew(&dmm);
2328  CHKERRQ(ierr);
2329 #endif
2330  dm->data = dmm;
2331 
2332  dmm->_name = new (std::string);
2333  dmm->_var_ids = new (std::map<std::string, unsigned int>);
2334  dmm->_block_ids = new (std::map<std::string, subdomain_id_type>);
2335  dmm->_var_names = new (std::map<unsigned int, std::string>);
2336  dmm->_block_names = new (std::map<unsigned int, std::string>);
2337  dmm->_side_ids = new (std::map<std::string, BoundaryID>);
2338  dmm->_side_names = new (std::map<BoundaryID, std::string>);
2339  dmm->_unside_ids = new (std::map<std::string, BoundaryID>);
2340  dmm->_unside_names = new (std::map<BoundaryID, std::string>);
2341  dmm->_unside_by_var_set = new (std::set<std::pair<BoundaryID, unsigned int>>);
2342  dmm->_contact_names = new (std::map<DM_Moose::ContactID, DM_Moose::ContactName>);
2343  dmm->_uncontact_names = new (std::map<DM_Moose::ContactID, DM_Moose::ContactName>);
2344  dmm->_contact_displaced = new (std::map<DM_Moose::ContactName, PetscBool>);
2345  dmm->_uncontact_displaced = new (std::map<DM_Moose::ContactName, PetscBool>);
2346 
2347  dmm->_splits = new (std::map<std::string, DM_Moose::SplitInfo>);
2348 
2349  dmm->_print_embedding = PETSC_FALSE;
2350 
2351  dm->ops->createglobalvector = DMCreateGlobalVector_Moose;
2352  dm->ops->createlocalvector = 0; // DMCreateLocalVector_Moose;
2353  dm->ops->getcoloring = 0; // DMGetColoring_Moose;
2354  dm->ops->creatematrix = DMCreateMatrix_Moose;
2355  dm->ops->createinterpolation = 0; // DMCreateInterpolation_Moose;
2356 
2357  dm->ops->refine = 0; // DMRefine_Moose;
2358  dm->ops->coarsen = 0; // DMCoarsen_Moose;
2359 #if PETSC_RELEASE_LESS_THAN(3, 12, 0)
2360  dm->ops->getinjection = 0; // DMGetInjection_Moose;
2361  dm->ops->getaggregates = 0; // DMGetAggregates_Moose;
2362 #else
2363  dm->ops->createinjection = 0;
2364 #endif
2365 
2366  dm->ops->createfielddecomposition = DMCreateFieldDecomposition_Moose;
2367  dm->ops->createdomaindecomposition = DMCreateDomainDecomposition_Moose;
2368 
2369  dm->ops->destroy = DMDestroy_Moose;
2370  dm->ops->view = DMView_Moose;
2371  dm->ops->setfromoptions = DMSetFromOptions_Moose;
2372  dm->ops->setup = DMSetUp_Moose;
2373  PetscFunctionReturn(0);
2374 }
static PetscErrorCode DMSetUp_Moose(DM dm)
std::set< std::pair< BoundaryID, unsigned int > > * _unside_by_var_set
Definition: PetscDMMoose.C:70
std::map< BoundaryID, std::string > * _side_names
Definition: PetscDMMoose.C:64
std::map< ContactName, PetscBool > * _contact_displaced
Definition: PetscDMMoose.C:80
std::map< std::string, BoundaryID > * _side_ids
Definition: PetscDMMoose.C:65
std::string * _name
The name of this DM.
Definition: PetscDMMoose.C:101
std::map< ContactName, PetscBool > * _uncontact_displaced
Definition: PetscDMMoose.C:81
ierr
std::map< std::string, unsigned int > * _var_ids
Definition: PetscDMMoose.C:56
std::map< unsigned int, std::string > * _var_names
Definition: PetscDMMoose.C:57
static PetscErrorCode DMView_Moose(DM dm, PetscViewer viewer)
std::map< ContactID, ContactName > * _uncontact_names
Definition: PetscDMMoose.C:79
std::map< std::string, SplitInfo > * _splits
Definition: PetscDMMoose.C:95
static PetscErrorCode DMCreateFieldDecomposition_Moose(DM dm, PetscInt *len, char ***namelist, IS **islist, DM **dmlist)
Definition: PetscDMMoose.C:877
std::map< std::string, BoundaryID > * _unside_ids
Definition: PetscDMMoose.C:67
CHKERRQ(ierr)
PetscBool _print_embedding
Definition: PetscDMMoose.C:98
PetscErrorCode DMSetFromOptions_Moose(DM dm, PetscOptionItems *) PetscErrorCode DMSetFromOptions_Moose(PetscOptionItems *
std::map< std::string, subdomain_id_type > * _block_ids
Definition: PetscDMMoose.C:60
static PetscErrorCode DMCreateGlobalVector_Moose(DM dm, Vec *x)
std::map< ContactID, ContactName > * _contact_names
Definition: PetscDMMoose.C:77
static PetscErrorCode DMDestroy_Moose(DM dm)
static PetscErrorCode DMCreateDomainDecomposition_Moose(DM dm, PetscInt *len, char ***namelist, IS **innerislist, IS **outerislist, DM **dmlist)
static PetscErrorCode DMCreateMatrix_Moose(DM dm, Mat *A)
std::map< BoundaryID, std::string > * _unside_names
Definition: PetscDMMoose.C:68
std::map< unsigned int, std::string > * _block_names
Definition: PetscDMMoose.C:61