Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::FeelModels::ModelAlgebraic Class Reference
+ Inheritance diagram for Feel::FeelModels::ModelAlgebraic:
+ Collaboration diagram for Feel::FeelModels::ModelAlgebraic:

Classes

class  DataDofEliminationIds
 
class  DataDofEliminationIdsByEntity
 
class  DataNewtonInitialGuess
 
class  DataUpdateBase
 
class  DataUpdateJacobian
 
class  DataUpdateLinear
 
class  DataUpdateResidual
 

Public Types

typedef std::shared_ptr< backend_type > backend_ptrtype
 
typedef Backend< value_type, size_type > backend_type
 
typedef vf::BlocksBase< size_type > block_pattern_type
 
using block_vector_ptrtype = std::shared_ptr< block_vector_type >
 
using block_vector_type = BlocksBaseVector< double >
 
typedef backend_type::graph_ptrtype graph_ptrtype
 
typedef backend_type::graph_type graph_type
 
using index_type = uint32_type
 
typedef backend_type::indexsplit_ptrtype indexsplit_ptrtype
 
typedef backend_type::indexsplit_type indexsplit_type
 
typedef std::shared_ptr< model_algebraic_factory_type > model_algebraic_factory_ptrtype
 
typedef ModelAlgebraicFactory model_algebraic_factory_type
 
using size_type = index_type
 
typedef backend_type::sparse_matrix_ptrtype sparse_matrix_ptrtype
 
typedef ModelBase super_type
 
typedef double value_type
 
typedef backend_type::vector_ptrtype vector_ptrtype
 
- Public Types inherited from Feel::FeelModels::ModelBase
using worldcomm_ptr_t = std::shared_ptr< WorldComm >
 
using worldcomm_t = WorldComm
 
using worldscomm_ptr_t = std::vector< std::shared_ptr< WorldComm > >
 
- Public Types inherited from Feel::JournalWatcher
using function_update_information_type = std::function< void(nl::json &)>
 
using notify_type = nl::json
 

Public Member Functions

backend_ptrtype algebraicBackend (std::string const &name="") const
 
block_vector_ptrtype algebraicBlockVectorSolution (std::string const &name="") const
 
model_algebraic_factory_ptrtype algebraicFactory (std::string const &name="") const
 
backend_ptrtype backend () const
 
virtual block_pattern_type blockPattern () const
 return an empty blockPattern if not overhead
 
virtual BlocksBaseGraphCSR buildBlockMatrixGraph () const
 
virtual graph_ptrtype buildMatrixGraph () const
 
void clearDofEliminationIds ()
 
void clearStartSubBlockSpaceIndex ()
 
size_type colStartInMatrix () const
 
std::map< std::string, dof_elimination_ids_value_type > const & dofEliminationIds () const
 
dof_elimination_ids_value_type const & dofEliminationIds (std::string const &spaceName) const
 
std::set< size_type > & dofEliminationIdsAll (std::string const &spaceName, ElementsType e)
 
bool errorIfSolverNotConverged () const
 
bool hasDofEliminationIds (std::string const &spaceName) const
 
bool hasStartSubBlockSpaceIndex (std::string const &name) const
 
void initAlgebraicBackend (std::string const &name="")
 
block_vector_ptrtype initAlgebraicBlockVectorSolution (int nBlock, std::string const &name="")
 
 ModelAlgebraic (ModelAlgebraic const &app)=default
 
 ModelAlgebraic (std::string _theprefix, std::string const &keyword, worldcomm_ptr_t const &_worldComm=Environment::worldCommPtr(), std::string const &subPrefix="", ModelBaseRepository const &modelRep=ModelBaseRepository(), ModelBaseCommandLineOptions const &modelCmdLineOpt=ModelBaseCommandLineOptions())
 
 ModelAlgebraic (std::string _theprefix, worldcomm_ptr_t const &_worldComm=Environment::worldCommPtr(), std::string const &subPrefix="", ModelBaseRepository const &modelRep=ModelBaseRepository(), ModelBaseCommandLineOptions const &modelCmdLineOpt=ModelBaseCommandLineOptions())
 
bool needToRebuildCstPart () const
 
virtual void postSolveLinear (vector_ptrtype rhs, vector_ptrtype sol) const
 
virtual void postSolveNewton (vector_ptrtype rhs, vector_ptrtype sol) const
 
virtual void postSolvePicard (vector_ptrtype rhs, vector_ptrtype sol) const
 
virtual void preSolveLinear (vector_ptrtype rhs, vector_ptrtype sol) const
 
virtual void preSolveNewton (vector_ptrtype rhs, vector_ptrtype sol) const
 
virtual void preSolvePicard (vector_ptrtype rhs, vector_ptrtype sol) const
 
bool printGraph () const
 
std::string printGraphFileName () const
 
bool rebuildCstPartInLinearSystem () const
 
bool rebuildCstPartInResidual () const
 
bool rebuildLinearPartInJacobian () const
 
void removeAllAlgebraicDataAndTools ()
 
size_type rowStartInMatrix () const
 index start of (sub-)block
 
size_type rowStartInVector () const
 
void setAlgebraicBackend (backend_ptrtype backend)
 
void setAlgebraicBackend (std::string const &name, backend_ptrtype backend)
 
void setAlgebraicFactory (model_algebraic_factory_ptrtype algFact)
 
void setAlgebraicFactory (std::string const &name, model_algebraic_factory_ptrtype algFact)
 
void setErrorIfSolverNotConverged (bool b)
 
void setNeedToRebuildCstPart (bool b)
 
void setPrintGraph (bool b)
 
void setPrintGraphFileName (std::string s)
 
void setRebuildCstPartInLinearSystem (bool b)
 
void setRebuildCstPartInResidual (bool b)
 
void setRebuildLinearPartInJacobian (bool b)
 
void setStartBlockSpaceIndex (size_type s)
 
void setStartBlockSpaceIndexMatrixCol (size_type s)
 
void setStartBlockSpaceIndexMatrixRow (size_type s)
 
void setStartBlockSpaceIndexVector (size_type s)
 
void setStartSubBlockSpaceIndex (std::string const &name, size_type s)
 
void setUseCstMatrix (bool b)
 
void setUseCstVector (bool b)
 
void setUseLinearJacobianInResidual (bool b)
 
size_type startBlockSpaceIndexMatrixCol () const
 
size_type startBlockSpaceIndexMatrixRow () const
 
size_type startBlockSpaceIndexVector () const
 
size_type startSubBlockSpaceIndex (std::string const &name) const
 
template<typename DataType >
void updateDofEliminationIds (std::string const &spaceName, DataType &data) const
 update data useful for mpi synchronization of NewtonInitialGuess, impose value in residual or jacobian
 
void updateDofEliminationIds (std::string const &spaceName, dof_elimination_ids_value_type const &dofIds, DataNewtonInitialGuess &data) const
 
void updateDofEliminationIds (std::string const &spaceName, dof_elimination_ids_value_type const &dofIds, DataUpdateJacobian &data) const
 
void updateDofEliminationIds (std::string const &spaceName, dof_elimination_ids_value_type const &dofIds, DataUpdateResidual &data) const
 
template<typename SpaceType , typename RangeType >
void updateDofEliminationIds (std::string const &spaceName, std::shared_ptr< SpaceType > thespace, RangeType const &therange, ComponentType c1=ComponentType::NO_COMPONENT)
 
virtual void updateInHousePreconditioner (DataUpdateJacobian &data) const
 
virtual void updateInHousePreconditioner (DataUpdateLinear &data) const
 
virtual void updateJacobian (DataUpdateJacobian &data) const
 
virtual void updateJacobianDofElimination (DataUpdateJacobian &data) const
 
virtual void updateLinearPDE (DataUpdateLinear &data) const
 
virtual void updateLinearPDEDofElimination (DataUpdateLinear &data) const
 
virtual void updateNewtonInitialGuess (DataNewtonInitialGuess &data) const
 
virtual void updateNewtonIteration (int step, vector_ptrtype residual, vector_ptrtype sol, typename backend_type::solvernonlinear_type::UpdateIterationData const &data) const
 
virtual void updatePicardIteration (int step, vector_ptrtype sol) const
 
virtual void updateResidual (DataUpdateResidual &data) const
 
virtual void updateResidualDofElimination (DataUpdateResidual &data) const
 
bool useCstMatrix () const
 
bool useCstVector () const
 
bool useLinearJacobianInResidual () const
 
bool verboseSolverTimer () const
 
bool verboseSolverTimerAllProc () const
 
- Public Member Functions inherited from Feel::FeelModels::ModelBase
void addParameterInModelProperties (std::string const &symbolName, double value)
 
void addTimerTool (std::string const &s, std::string const &fileName) const
 
po::variables_map const & clovm () const
 return variables map from command line options
 
virtual void createWorldsComm ()
 
bool hasModelProperties () const
 
void initModelProperties ()
 
bool isUpdatedForUse () const
 
std::string const & keyword () const
 keyword
 
worldscomm_ptr_t & localNonCompositeWorldsComm ()
 
worldscomm_ptr_t const & localNonCompositeWorldsComm () const
 
void log (std::string const &_className, std::string const &_functionName, std::string const &_msg) const
 
bool manageParameterValues () const
 
bool manageParameterValuesOfModelProperties () const
 
 ModelBase (ModelBase &&app)=default
 
 ModelBase (ModelBase const &app)=default
 
 ModelBase (std::string const &prefix, std::string const &keyword, worldcomm_ptr_t const &worldComm=Environment::worldCommPtr(), std::string const &subPrefix="", ModelBaseRepository const &modelRep=ModelBaseRepository(), ModelBaseCommandLineOptions const &modelCmdLineOpt=ModelBaseCommandLineOptions())
 
 ModelBase (std::string const &prefix, worldcomm_ptr_t const &worldComm=Environment::worldCommPtr(), std::string const &subPrefix="", ModelBaseRepository const &modelRep=ModelBaseRepository(), ModelBaseCommandLineOptions const &modelCmdLineOpt=ModelBaseCommandLineOptions())
 
ModelProperties & modelProperties ()
 
ModelProperties const & modelProperties () const
 
std::shared_ptr< ModelProperties > modelPropertiesPtr () const
 
std::string const & prefix () const
 
void printAndSaveInfo () const
 
void printInfo () const
 
ModelBaseRepository const & repository () const
 
std::string const & rootRepository () const
 
void saveInfo () const
 
std::string scalabilityFilename () const
 
std::string scalabilityPath () const
 
bool scalabilityReinitSaveFile () const
 
bool scalabilitySave () const
 
void setIsUpdatedForUse (bool b)
 
void setLocalNonCompositeWorldsComm (worldscomm_ptr_t &_worldsComm)
 
void setManageParameterValues (bool b)
 
void setManageParameterValuesOfModelProperties (bool b)
 
void setModelProperties (nl::json const &j)
 Set the Model Properties object from a json struct the json may come from python. More...
 
void setModelProperties (std::shared_ptr< ModelProperties > modelProps)
 
void setModelProperties (std::string const &filename)
 Set the Model Properties object from a filename. More...
 
void setScalabilityFilename (std::string const &s)
 
void setScalabilityPath (std::string const &s)
 
void setScalabilitySave (bool b)
 
void setWorldsComm (worldscomm_ptr_t &_worldsComm)
 
std::string const & subPrefix () const
 
auto symbolsExprParameter () const
 
tabulate_informations_ptr_t tabulateInformations () const
 
virtual tabulate_informations_ptr_t tabulateInformations (nl::json const &jsonInfo, TabulateInformationProperties const &tabInfoProp) const
 
TimerToolBase & timerTool (std::string const &s) const
 
void updateInformationObject (nl::json &p) const override
 
ModelBaseUpload const & upload () const
 
void upload (std::string const &dataPath) const
 
bool verbose () const
 
bool verboseAllProc () const
 
worldcomm_t & worldComm ()
 
worldcomm_t const & worldComm () const
 
worldcomm_ptr_t & worldCommPtr ()
 
worldcomm_ptr_t const & worldCommPtr () const
 
worldscomm_ptr_t & worldsComm ()
 
worldscomm_ptr_t const & worldsComm () const
 
- Public Member Functions inherited from Feel::JournalWatcher
 JournalWatcher (std::string const &category="", std::string const &name="", bool connect=JournalManager::journalAutoMode())
 Constructors. More...
 
 JournalWatcher (std::string const &category, bool useDefaultName, bool connect=JournalManager::journalAutoMode())
 
 JournalWatcher (function_update_information_type const &func, std::string const &category="", std::string const &name="", bool useDefaultNameIfEmpty=true, bool connect=JournalManager::journalAutoMode())
 
 JournalWatcher (JournalWatcher const &jw)
 Copy constructor.
 
virtual ~JournalWatcher ()
 Default destructor. The (inherited) object is always disconnected from the journal during the destruction.
 
bool journalIsConnected () const
 GettersCheck if the object is connected to the journal. More...
 
std::string const & journalWatcherInstanceName () const
 Return the full instance name for this watched object. The name is composed with the base name and a suffix index corresponding to the nth call. More...
 
nl::json::json_pointer journalSection () const
 Return the section into the journal as json_pointer.
 
nl::json const & informationObject () const
 Return the information into property tree.
 
void journalConnect ()
 Setters. More...
 
void journalDisconnect ()
 Disconnect the derived object from the simulation info manager. The disconnection is safe.
 
void setInformationObject (nl::json const &informationObject)
 set information object
 
void putInformationObject (nl::json const &informationObject)
 put information object
 
void addInformationObject (nl::json const &informationObject)
 add information object
 
void journalFinalize ()
 finalize journal publication
 

Additional Inherited Members

- Protected Member Functions inherited from Feel::JournalWatcher
void applyUpdateInformationObject ()
 Protected Methods.