|
| typedef std::map< std::string, RCP< const FactoryBase > > | FactoryMap |
| |
| typedef std::map< std::string, RCP< FactoryManagerBase > > | FactoryManagerMap |
| |
| int | blockSize_ |
| | block size of matrix (fixed block size)
|
| |
| CycleType | Cycle_ |
| | multigrid cycle type (V-cycle or W-cycle)
|
| |
| int | WCycleStartLevel_ |
| | in case of W-cycle, level on which cycle should start
|
| |
| double | scalingFactor_ |
| | prolongator scaling factor
|
| |
| GlobalOrdinal | dofOffset_ |
| | global offset variable describing offset of DOFs in operator
|
| |
| std::string | hierarchyLabel_ |
| | name of hierarchy (for user convenience), printed in summary
|
| |
| bool | changedPRrebalance_ |
| | Easy interpreter stuff.
|
| |
| bool | changedPRViaCopyrebalance_ |
| |
| bool | changedImplicitTranspose_ |
| |
| bool | useCoordinates_ |
| |
| bool | useBlockNumber_ |
| |
| bool | useMaterial_ |
| |
| bool | useKokkos_ |
| |
| Teuchos::RCP< FactoryFactory > | factFact_ |
| | Internal factory for factories.
|
| |
| Teuchos::RCP< MueLu::FacadeClassFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node > > | facadeFact_ |
| | FacadeClass factory.
|
| |
| | ParameterListInterpreter () |
| | Empty constructor.
|
| |
| | ParameterListInterpreter (Teuchos::ParameterList ¶mList, Teuchos::RCP< const Teuchos::Comm< int > > comm=Teuchos::null, Teuchos::RCP< FactoryFactory > factFact=Teuchos::null, Teuchos::RCP< FacadeClassFactory > facadeFact=Teuchos::null) |
| | Constructor that accepts a user-provided ParameterList.
|
| |
| | ParameterListInterpreter (const std::string &xmlFileName, const Teuchos::Comm< int > &comm, Teuchos::RCP< FactoryFactory > factFact=Teuchos::null, Teuchos::RCP< FacadeClassFactory > facadeFact=Teuchos::null) |
| | Constructor that reads parameters from an XML file.
|
| |
| virtual | ~ParameterListInterpreter () |
| | Destructor.
|
| |
| void | SetParameterList (const Teuchos::ParameterList ¶mList) |
| | Set parameter list for Parameter list interpreter.
|
| |
| void | SetupHierarchy (Hierarchy &H) const |
| | Call the SetupHierarchy routine from the HiearchyManager object.
|
| |
| virtual void | SetupOperator (Operator &A) const |
| | Setup Operator object.
|
| |
| void | SetEasyParameterList (const Teuchos::ParameterList ¶mList) |
| |
| void | Validate (const Teuchos::ParameterList ¶mList) const |
| |
| void | UpdateFactoryManager (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Smoothers (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_CoarseSolvers (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Aggregation_TentativeP (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Restriction (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_RAP (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Coordinates (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Material (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Repartition (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps, RCP< Factory > &nullSpaceFactory) const |
| |
| void | UpdateFactoryManager_LowPrecision (ParameterList ¶mList, const ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Nullspace (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps, RCP< Factory > &nullSpaceFactory) const |
| |
| void | UpdateFactoryManager_BlockNumber (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_LocalOrdinalTransfer (const std::string &VarName, const std::string &multigridAlgo, Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_MatrixTransfer (const std::string &VarName, Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_SemiCoarsen (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_PCoarsen (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_SA (std::string &multigridAlgo, Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Reitzinger (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Emin (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_EminReitzinger (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_PG (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Replicate (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Combine (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | UpdateFactoryManager_Matlab (Teuchos::ParameterList ¶mList, const Teuchos::ParameterList &defaultList, FactoryManager &manager, int levelID, std::vector< keep_pair > &keeps) const |
| |
| void | SetFactoryParameterList (const Teuchos::ParameterList ¶mList) |
| | Factory interpreter stuff.
|
| |
| void | BuildFactoryMap (const Teuchos::ParameterList ¶mList, const FactoryMap &factoryMapIn, FactoryMap &factoryMapOut, FactoryManagerMap &factoryManagers) const |
| | Interpret "Factories" sublist.
|
| |
template<class
Scalar = DefaultScalar, class
LocalOrdinal = DefaultLocalOrdinal, class
GlobalOrdinal = DefaultGlobalOrdinal, class
Node = DefaultNode>
class MueLu::ParameterListInterpreter< Scalar, LocalOrdinal, GlobalOrdinal, Node >
Definition at line 81 of file MueLu_ParameterListInterpreter_decl.hpp.
Interpret "Factories" sublist.
- Parameters
-
| paramList | [in]: "Factories" ParameterList |
| factoryMapIn | [in]: FactoryMap maps variable names to factories. This factory map is used to resolve data dependencies of previously defined factories. |
| factoryMapOut | [out]: FactoryMap maps variable names to factories. New factory entries are added to that FactoryMap. Usually, factoryMapIn and factoryMapOut should use the same object, such that new factories are added. We have to distinguish input and output if we build sub-factory managers, though. |
| factoryManagers | [in/out]: FacotryManagerMap maps group names to a FactoryManager object. |
Interpret "Factories" parameter list. For each "factory" entry, add a new entry in the factoryMapOut map or create a new FacotryManager
Parameter List Parsing:
Create an entry in factoryMapOut for each parameter of the list paramList
<ParameterList name="..."> <Parameter name="smootherFact0" type="string" value="TrilinosSmoother">
<ParameterList name="smootherFact1"> <Parameter name="type" type="string" value="TrilinosSmoother"> ... </ParameterList> </ParameterList>
Group factories We can group factories using parameter sublists with the "group" parameter
<ParameterList name="myFirstGroup"> <Parameter name="group" type="string" value="FactoryManager"> <Parameter name="A" type="string" value="mySubBlockAFactory1"> <Parameter name="P" type="string" value="myTentativePFact1"> <Parameter name="Aggregates" type="string" value="myAggFact1"> <Parameter name="Nullspace" type="string" value="myNspFact1"> <Parameter name="CoarseMap" type="string" value="myCoarseMap1"> </ParameterList> <ParameterList name="mySecondGroup"> <Parameter name="group" type="string" value="FactoryManager"> <Parameter name="A" type="string" value="mySubBlockAFactory2"> <Parameter name="P" type="string" value="myTentativePFact2"> <Parameter name="Aggregates" type="string" value="myAggFact1"> <Parameter name="Nullspace" type="string" value="myNspFact2"> <Parameter name="CoarseMap" type="string" value="myCoarseMap2"> </ParameterList>
These factory groups can be used with factories for blocked operators (such as the BlockedPFactory) to easily define the operations on the sub-blocks.
<ParameterList name="myBlockedPFact"> <Parameter name="factory" type="string" value="BlockedPFactory">
<ParameterList name="block1"> <Parameter name="group" type="string" value="myFirstGroup"> </ParameterList>
<ParameterList name="block2"> <Parameter name="group" type="string" value="mySecondGroup"> </ParameterList> </ParameterList>
As an alternative one can also directly specify the factories in the sublists "block1", "block2", etc..., of course. But using blocks has the advantage that one can reuse them in all blocked factories.
<ParameterList name="myBlockedPFact"> <Parameter name="factory" type="string" value="BlockedPFactory">
<ParameterList name="block1"> <Parameter name="A" type="string" value="mySubBlockAFactory1"> <Parameter name="P" type="string" value="myTentativePFact1"> <Parameter name="Aggregates" type="string" value="myAggFact1"> <Parameter name="Nullspace" type="string" value="myNspFact1"> <Parameter name="CoarseMap" type="string" value="myCoarseMap1"> </ParameterList>
<ParameterList name="block2"> <Parameter name="A" type="string" value="mySubBlockAFactory2"> <Parameter name="P" type="string" value="myTentativePFact2"> <Parameter name="Aggregates" type="string" value="myAggFact1"> <Parameter name="Nullspace" type="string" value="myNspFact2"> <Parameter name="CoarseMap" type="string" value="myCoarseMap2"> </ParameterList> </ParameterList>
As an alternative one can also directly specify the factories in the sublists "block1", "block2", etc..., of course.
add more dependencies (circular dependencies)
The NullspaceFactory needs to know which factory generates the null space on the coarse level (e.g., the TentativePFactory or the RebalancedPFactory). However, we cannot set the information in this place in the xml file, since the tentative prolongator facotry is typically defined later. We have to add that dependency later to the NullspaceFactory:
<ParameterList name="myNspFact"> <Parameter name="factory" type="string" value="NullspaceFactory">
</ParameterList>
<ParameterList name="myTentativePFact"> <Parameter name="factory" type="string" value="TentativePFactory"> <...> <Parameter name="Nullspace" type="string" value="myNspFact"> <Parameter name="CoarseMap" type="string" value="myCoarseMap"> </ParameterList>
<ParameterList name="myRebalanceProlongatorFact"> <Parameter name="factory" type="string" value="RebalanceTransferFactory"> <...> <Parameter name="Nullspace" type="string" value="myTentativePFact"> </ParameterList>
After the definition of the generating factory for the nullspace (in this case myRebalanceProlongatorFact) we add that dependency to the NullspaceFactory instance myNspFact
<ParameterList name="myNspFactDeps"> <Parameter name="dependency for" type="string" value="myNspFact"> <Parameter name="Nullspace" type="string" value="myRebalanceProlongatorFact"> </ParameterList>
We have to create a new block (with a different name than myNspFact). In the example we use "myNspFactDeps". It should contain a parameter "dependency for" with the name of the factory that we want the dependencies to be addded to. With above block we do not need the entry for the Nullspace in the global FactoryManager any more.
Definition at line 2814 of file MueLu_ParameterListInterpreter_def.hpp.