MueLu
Version of the Day
|
Prolongator factory performing geometric coarsening. More...
#include <MueLu_GeneralGeometricPFactory_decl.hpp>
Classes | |
struct | GeometricData |
struct | NodeID |
struct | NodesIDs |
Public Member Functions | |
RCP< const ParameterList > | GetValidParameterList () const |
Return a const parameter list of valid parameters that setParameterList() will accept. More... | |
![]() | |
PFactory () | |
Constructor. More... | |
virtual | ~PFactory () |
Destructor. More... | |
void | setRestrictionMode (bool bRestrictionMode=false) |
bool | isRestrictionModeSet () |
returns restrictionMode flag More... | |
![]() | |
TwoLevelFactoryBase () | |
Constructor. More... | |
virtual | ~TwoLevelFactoryBase () |
Destructor. More... | |
virtual void | CallDeclareInput (Level &requestedLevel) const |
virtual void | CallBuild (Level &requestedLevel) const |
![]() | |
void | EnableMultipleCallCheck () const |
void | DisableMultipleCallCheck () const |
void | ResetDebugData () const |
Factory () | |
Constructor. More... | |
virtual | ~Factory () |
Destructor. More... | |
virtual void | SetFactory (const std::string &varName, const RCP< const FactoryBase > &factory) |
Configuration. More... | |
const RCP< const FactoryBase > | GetFactory (const std::string &varName) const |
Default implementation of FactoryAcceptor::GetFactory() More... | |
RCP< ParameterList > | RemoveFactoriesFromList (const ParameterList &list) const |
![]() | |
FactoryBase () | |
Constructor. More... | |
virtual | ~FactoryBase () |
Destructor. More... | |
int | GetID () const |
return unique factory id More... | |
![]() | |
virtual | ~BaseClass () |
Destructor. More... | |
![]() | |
VerbLevel | GetVerbLevel () const |
Get the verbosity level. More... | |
void | SetVerbLevel (const VerbLevel verbLevel) |
Set the verbosity level of this object. More... | |
int | GetProcRankVerbose () const |
Get proc rank used for printing. Do not use this information for any other purpose. More... | |
int | SetProcRankVerbose (int procRank) const |
Set proc rank used for printing. More... | |
bool | IsPrint (MsgType type, int thisProcRankOnly=-1) const |
Find out whether we need to print out information for a specific message type. More... | |
Teuchos::FancyOStream & | GetOStream (MsgType type, int thisProcRankOnly=0) const |
Get an output stream for outputting the input message type. More... | |
Teuchos::FancyOStream & | GetBlackHole () const |
VerboseObject () | |
virtual | ~VerboseObject () |
Destructor. More... | |
![]() | |
virtual | ~Describable () |
Destructor. More... | |
virtual std::string | ShortClassName () const |
Return the class name of the object, without template parameters and without namespace. More... | |
virtual void | describe (Teuchos::FancyOStream &out_arg, const VerbLevel verbLevel=Default) const |
virtual std::string | description () const |
Return a simple one-line description of this object. More... | |
void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
Print the object with some verbosity level to an FancyOStream object. More... | |
![]() | |
virtual | ~FactoryAcceptor () |
![]() | |
ParameterListAcceptorImpl () | |
virtual | ~ParameterListAcceptorImpl () |
virtual void | SetParameterList (const ParameterList ¶mList) |
Set parameters from a parameter list and return with default values. More... | |
virtual const Teuchos::ParameterList & | GetParameterList () const |
void | SetParameter (const std::string &name, const ParameterEntry &entry) |
Set a parameter directly as a ParameterEntry. More... | |
const ParameterEntry & | GetParameter (const std::string &name) const |
Retrieves a const entry with the name name. More... | |
virtual void | GetDocumentation (std::ostream &os) const |
![]() | |
ParameterListAcceptor () | |
virtual | ~ParameterListAcceptor () |
Private Member Functions | |
void | MeshLayoutInterface (const int interpolationOrder, const LO blkSize, RCP< const Map > fineCoordsMap, RCP< GeometricData > myGeometry, RCP< NodesIDs > ghostedCoarseNodes, Array< Array< GO > > &lCoarseNodesGIDs) const |
void | GetCoarsePoints (const int interpolationOrder, const LO blkSize, RCP< const Map > fineCoordsMap, RCP< GeometricData > myGeometry, RCP< NodesIDs > ghostedCoarseNodes, Array< Array< GO > > &lCoarseNodesGIDs) const |
void | MakeGeneralGeometricP (RCP< GeometricData > myGeo, const RCP< Xpetra::MultiVector< double, LO, GO, NO > > &fCoords, const LO nnzP, const LO dofsPerNode, RCP< const Map > &stridedDomainMapP, RCP< Matrix > &Amat, RCP< Matrix > &P, RCP< Xpetra::MultiVector< double, LO, GO, NO > > &cCoords, RCP< NodesIDs > ghostedCoarseNodes, Array< Array< GO > > coarseNodesGIDs, int interpolationOrder) const |
void | ComputeStencil (const LO numDimension, const Array< GO > currentNodeIndices, const Array< GO > coarseNodeIndices, const LO rate[3], const Array< Array< double > > coord, const int interpolationOrder, std::vector< double > &stencil) const |
void | ComputeConstantInterpolationStencil (const LO numDimension, const Array< GO > currentNodeIndices, const Array< GO > coarseNodeIndices, const LO rate[3], std::vector< double > &stencil) const |
void | ComputeLinearInterpolationStencil (const LO numDimension, const Array< Array< double > > coord, std::vector< double > &stencil) const |
void | GetInterpolationFunctions (const LO numDimension, const Teuchos::SerialDenseVector< LO, double > parameters, double functions[4][8]) const |
void | sh_sort_permute (const typename Teuchos::Array< LocalOrdinal >::iterator &first1, const typename Teuchos::Array< LocalOrdinal >::iterator &last1, const typename Teuchos::Array< LocalOrdinal >::iterator &first2, const typename Teuchos::Array< LocalOrdinal >::iterator &last2) const |
void | sh_sort2 (const typename Teuchos::Array< LocalOrdinal >::iterator &first1, const typename Teuchos::Array< LocalOrdinal >::iterator &last1, const typename Teuchos::Array< LocalOrdinal >::iterator &first2, const typename Teuchos::Array< LocalOrdinal >::iterator &last2) const |
void | GetGIDLocalLexicographic (const GO i, const GO j, const GO k, const Array< LO > coarseNodeFineIndices, const RCP< GeometricData > myGeo, const LO myRankIndex, const LO pi, const LO pj, const LO pk, const typename std::vector< std::vector< GO > >::iterator blockStart, const typename std::vector< std::vector< GO > >::iterator blockEnd, GO &myGID, LO &myPID, LO &myLID) const |
Friends | |
class | MueLuTests::GeneralGeometricPFactoryTester< Scalar, LocalOrdinal, GlobalOrdinal, Node > |
Constructors/Destructors. | |
GeneralGeometricPFactory () | |
Constructor. More... | |
virtual | ~GeneralGeometricPFactory () |
Destructor. More... | |
void | DeclareInput (Level &fineLevel, Level &coarseLevel) const |
Input. More... | |
Build methods. | |
void | Build (Level &fineLevel, Level &coarseLevel) const |
Build an object with this factory. More... | |
void | BuildP (Level &fineLevel, Level &coarseLevel) const |
Abstract Build method. More... | |
Additional Inherited Members | |
![]() | |
static void | EnableTimerSync () |
static void | DisableTimerSync () |
static void | EnableMultipleCheckGlobally () |
static void | DisableMultipleCheckGlobally () |
![]() | |
static void | SetDefaultOStream (const Teuchos::RCP< Teuchos::FancyOStream > &defaultOStream) |
static Teuchos::RCP< Teuchos::FancyOStream > | GetDefaultOStream () |
static void | SetDefaultVerbLevel (const VerbLevel defaultVerbLevel) |
Set the default (global) verbosity level. More... | |
static VerbLevel | GetDefaultVerbLevel () |
Get the default (global) verbosity level. More... | |
![]() | |
void | Input (Level &level, const std::string &varName) const |
void | Input (Level &level, const std::string &varName, const std::string &varParamName) const |
template<class T > | |
T | Get (Level &level, const std::string &varName) const |
template<class T > | |
T | Get (Level &level, const std::string &varName, const std::string &varParamName) const |
template<class T > | |
void | Set (Level &level, const std::string &varName, const T &data) const |
bool | IsAvailable (Level &level, const std::string &varName) const |
![]() | |
bool | restrictionMode_ |
![]() | |
static bool | timerSync_ = false |
Prolongator factory performing geometric coarsening.
The geometric algorithm assumes the underlying mesh is reasonably structured. Any rate of coarsening can be applied, and the rate is automatically decrease along an edge if the number of element is not divisible by the coarsening rate. The coarsening rate is allowed to be different in all direction which means that semi-coarsening can be achieved within this algorithm in 1 or 2 directions. The main difficulty is to obtain the number of elements/nodes in each directions to identify coarse nodes and fine nodes.
Parameter | type | default | master.xml | validated | requested | description |
---|---|---|---|---|---|---|
Coarsen | string | -1 | A string that specify the coarsening rate, if it is a single character, it will | |||
indicate a unique coarsening rate in each direction, if it is longer, it will be | ||||||
processed as a vector with 3 entries, one for each spatial direction | ||||||
A | Factory | null | * | * | Generating factory of the matrix A used during the prolongator smoothing process | |
Nullspace | Factory | null | * | * | Generating factory of the nullspace. The GeneralGeometricPFactory provides | |
a coarse version of the given Nullspace. | ||||||
Coordinates | Factory | NoFactory | * | * | Generating factory for coorindates. The coordinates are expected to be provided | |
on the finest level using the NoFactory mechanism. The coordinates are used to | ||||||
compute the coarsening stencil and coarse coordinates are generated for the next | ||||||
level. |
The * in the master.xml
column denotes that the parameter is defined in the master.xml
file.
The * in the validated
column means that the parameter is declared in the list of valid input parameters (see GeneralGeometricCoarsenPFactory::GetValidParameters).
The * in the requested
column states that the data is requested as input with all dependencies (see GeneralGeometricCoarsenPFactory::DeclareInput).
After GeneralGeometricPFactory::Build the following data is available (if requested)
Parameter | generated by | description |
---|---|---|
P | GeneralGeometricPFactory | Prolongator |
Nullspace | GeneralGeometricPFactory | Coarse nullspace (the fine level nullspace information is coarsened using P to generate a coarse version |
of the nullspace. No scaling is applied. | ||
coarseCoordinates | NoFactory | Coarse coordinates that will be used on the next fine level to compute the coarsening stencils |
Definition at line 116 of file MueLu_GeneralGeometricPFactory_decl.hpp.
|
inline |
Constructor.
Definition at line 128 of file MueLu_GeneralGeometricPFactory_decl.hpp.
|
inlinevirtual |
Destructor.
Definition at line 131 of file MueLu_GeneralGeometricPFactory_decl.hpp.
|
virtual |
Return a const parameter list of valid parameters that setParameterList() will accept.
Also define the default values of parameters according to the input parameter list.
Reimplemented from MueLu::Factory.
Definition at line 76 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
virtual |
Input.
Implements MueLu::TwoLevelFactoryBase.
Definition at line 108 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
virtual |
Build an object with this factory.
Implements MueLu::TwoLevelFactoryBase.
Definition at line 140 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
virtual |
Abstract Build method.
Implements MueLu::PFactory.
Definition at line 146 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 332 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 567 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 778 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 1603 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 1624 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 1648 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 1737 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 1794 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 1821 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
private |
Definition at line 1850 of file MueLu_GeneralGeometricPFactory_def.hpp.
|
friend |
Definition at line 122 of file MueLu_GeneralGeometricPFactory_decl.hpp.