Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::FeelModels::Heat< ConvexType, BasisTemperatureType > Class Template Reference

class for heat transfer toolbox More...

+ Inheritance diagram for Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >:
+ Collaboration diagram for Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >:

Classes

struct  FieldTag
 

Public Types

typedef BasisTemperatureType basis_temperature_type
 
typedef std::shared_ptr< bdf_temperature_type > bdf_temperature_ptrtype
 
typedef Bdf< space_temperature_type > bdf_temperature_type
 
typedef ConvexType convex_type
 
typedef std::shared_ptr< element_temperature_type > element_temperature_ptrtype
 
typedef space_temperature_type::element_type element_temperature_type
 
typedef std::shared_ptr< export_type > export_ptrtype
 
typedef Exporter< mesh_type, nOrderGeo > export_type
 
typedef std::shared_ptr< materialsproperties_type > materialsproperties_ptrtype
 
typedef MaterialsProperties< nRealDim > materialsproperties_type
 
typedef std::shared_ptr< mesh_type > mesh_ptrtype
 
typedef Mesh< convex_type > mesh_type
 
typedef std::shared_ptr< self_type > self_ptrtype
 
typedef Heat< ConvexType, BasisTemperatureType > self_type
 
using size_type = typename super_type::size_type
 
typedef std::shared_ptr< space_temperature_type > space_temperature_ptrtype
 
typedef FunctionSpace< mesh_type, bases< basis_temperature_type > > space_temperature_type
 
typedef std::shared_ptr< stab_gls_parameter_type > stab_gls_parameter_ptrtype
 
typedef StabilizationGLSParameterBase< mesh_type > stab_gls_parameter_type
 
typedef ModelNumerical super_type
 
- Public Types inherited from Feel::FeelModels::ModelNumerical
typedef super_type::backend_ptrtype backend_ptrtype
 
typedef super_type::backend_type backend_type
 
typedef vf::BlocksBase< size_type > block_pattern_type
 
using index_type = typename super_type::index_type
 
typedef backend_type::indexsplit_ptrtype indexsplit_ptrtype
 
typedef backend_type::indexsplit_type indexsplit_type
 
using size_type = typename super_type::size_type
 
typedef backend_type::sparse_matrix_ptrtype sparse_matrix_ptrtype
 
typedef ModelAlgebraic 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 Types inherited from Feel::FeelModels::ModelAlgebraic
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::ModelMeshes< ModelAlgebraic::index_type >
using index_type = ModelAlgebraic::index_type
 
using mesh_adaptation_type = typename modelmesh_type::MeshAdaptation
 
using mesh_base_ptrtype = typename modelmesh_type::mesh_base_ptrtype
 
using mesh_base_type = typename modelmesh_type::mesh_base_type
 
using modelmesh_type = ModelMesh< ModelAlgebraic::index_type >
 
- Public Types inherited from Feel::FeelModels::ModelPhysics< ConvexType::nDim >
using material_property_description_type = MaterialPropertyDescription
 
using material_property_shape_dim_type = typename material_property_description_type::shape_dim_type
 
using model_physic_ptrtype = std::shared_ptr< model_physic_type >
 
using model_physic_type = ModelPhysic< nDim >
 
using physic_id_type = std::pair< std::string, std::string >
 

Public Member Functions

void applyRemesh (mesh_ptrtype oldMesh, mesh_ptrtype newMesh, std::shared_ptr< RemeshInterpolation > remeshInterp=std::make_shared< RemeshInterpolation >())
 
BlocksBaseGraphCSR buildBlockMatrixGraph () const override
 
bool checkResults () const override
 
template<typename ModelFieldsType , typename SymbolsExpr , typename ModelMeasuresQuantitiesType >
void executePostProcessMeasures (double time, ModelFieldsType const &mfields, SymbolsExpr const &symbolsExpr, ModelMeasuresQuantitiesType const &mquantities)
 
void exportResults ()
 
void exportResults (double time)
 
template<typename ModelFieldsType , typename SymbolsExpr , typename ExportsExprType >
void exportResults (double time, ModelFieldsType const &mfields, SymbolsExpr const &symbolsExpr, ExportsExprType const &exportsExpr)
 
template<typename SymbolsExpr >
void exportResults (double time, SymbolsExpr const &symbolsExpr)
 
template<typename SymbExprType >
auto exprPostProcessExports (SymbExprType const &se, std::string const &prefix="") const
 
template<typename SymbExprType >
auto exprPostProcessExportsToolbox (SymbExprType const &se, std::string const &prefix) const
 
element_temperature_type const & fieldTemperature () const
 
element_temperature_ptrtype const & fieldTemperaturePtr () const
 
 Heat (std::string const &prefix, std::string const &keyword="heat", worldcomm_ptr_t const &worldComm=Environment::worldCommPtr(), std::string const &subPrefix="", ModelBaseRepository const &modelRep=ModelBaseRepository(), ModelBaseCommandLineOptions const &modelOptions=ModelBaseCommandLineOptions{})
 
void init (bool buildModelAlgebraicFactory=true)
 
void initAlgebraicFactory ()
 
materialsproperties_ptrtype & materialsProperties ()
 
materialsproperties_ptrtype const & materialsProperties () const
 
mesh_ptrtype mesh () const
 
template<typename ModelFieldsType >
auto modelContext (ModelFieldsType const &mfields, std::string const &prefix="") const
 
auto modelContext (std::string const &prefix="") const
 
auto modelContext (vector_ptrtype sol, size_type rowStartInVector=0, std::string const &prefix="") const
 
auto modelContextNoTrialSymbolsExpr (vector_ptrtype sol, size_type rowStartInVector=0, std::string const &prefix="") const
 
auto modelFields (std::map< std::string, std::tuple< vector_ptrtype, size_type > > const &vectorData, std::string const &prefix="") const
 
auto modelFields (std::string const &prefix="") const
 
template<typename TemperatureFieldType >
auto modelFields (TemperatureFieldType const &field_t, std::string const &prefix="") const
 
auto modelFields (vector_ptrtype sol, size_type rowStartInVector=0, std::string const &prefix="") const
 
int nBlockMatrixGraph () const
 
template<typename FieldTemperatureType , typename SymbolsExpr = symbols_expression_empty_t>
auto normalHeatFluxExpr (FieldTemperatureType const &t, bool isOutward=true, SymbolsExpr const &symbolsExpr=symbols_expression_empty_t{}) const
 
Range< mesh_type, MESH_ELEMENTS > const & rangeMeshElements () const
 
void setMaterialsProperties (materialsproperties_ptrtype mp)
 
void setMesh (mesh_ptrtype const &mesh)
 
void setParameterValues (std::map< std::string, double > const &paramValues)
 
std::shared_ptr< self_type > shared_from_this ()
 
void solve ()
 
space_temperature_ptrtype const & spaceTemperature () const
 
bool stabilizationGLS () const
 
bool stabilizationGLS_checkConductivityDependencyOnCoordinates () const
 
stab_gls_parameter_ptrtype const & stabilizationGLSParameter () const
 
std::string const & stabilizationGLSType () const
 
void startTimeStep ()
 
template<typename ModelFieldsType >
auto symbolsExpr (ModelFieldsType const &mfields) const
 
auto symbolsExpr (std::string const &prefix="") const
 
template<typename ModelFieldsType >
auto symbolsExprToolbox (ModelFieldsType const &mfields) const
 
tabulate_informations_ptr_t tabulateInformations (nl::json const &jsonInfo, TabulateInformationProperties const &tabInfoProp) const override
 
std::shared_ptr< TSBase > timeStepBase ()
 
std::shared_ptr< TSBase > timeStepBase () const
 
bdf_temperature_ptrtype const & timeStepBdfTemperature () const
 
std::string const & timeStepping () const
 
auto trialSelectorModelFields (size_type startBlockSpaceIndex=0) const
 
template<typename ModelFieldsType , typename TrialSelectorModelFieldsType >
auto trialSymbolsExpr (ModelFieldsType const &mfields, TrialSelectorModelFieldsType const &tsmf) const
 
void updateInformationObject (nl::json &p) const override
 
template<typename SymbolsExprType >
void updateInitialConditions (SymbolsExprType const &se)
 
void updateJacobian (DataUpdateJacobian &data) const override
 
template<typename ModelContextType >
void updateJacobian (DataUpdateJacobian &data, ModelContextType const &mfields) const
 
void updateJacobianDofElimination (DataUpdateJacobian &data) const override
 
template<typename ModelContextType , typename RangeType >
void updateJacobianStabilizationGLS (DataUpdateJacobian &data, ModelContextType const &mctx, ModelPhysicHeat< nDim > const &physicHeatData, MaterialProperties const &matProps, RangeType const &range) const
 
void updateLinearPDE (DataUpdateLinear &data) const override
 
template<typename ModelContextType >
void updateLinearPDE (DataUpdateLinear &data, ModelContextType const &mfields) const
 
void updateLinearPDEDofElimination (DataUpdateLinear &data) const override
 
template<typename ModelContextType >
void updateLinearPDEDofElimination (DataUpdateLinear &data, ModelContextType const &mfields) const
 
template<typename ModelContextType , typename RangeType >
void updateLinearPDEStabilizationGLS (DataUpdateLinear &data, ModelContextType const &mctx, ModelPhysicHeat< nDim > const &physicHeatData, MaterialProperties const &matProps, RangeType const &range) const
 
void updateNewtonInitialGuess (DataNewtonInitialGuess &data) const override
 
template<typename ModelContextType >
void updateNewtonInitialGuess (DataNewtonInitialGuess &data, ModelContextType const &mfields) const
 
void updateParameterValues ()
 
void updateResidual (DataUpdateResidual &data) const override
 
template<typename ModelContextType >
void updateResidual (DataUpdateResidual &data, ModelContextType const &mfields) const
 
void updateResidualDofElimination (DataUpdateResidual &data) const override
 
template<typename ModelContextType , typename RangeType , typename... ExprAddedType>
void updateResidualStabilizationGLS (DataUpdateResidual &data, ModelContextType const &mctx, ModelPhysicHeat< nDim > const &physicHeatData, MaterialProperties const &matProps, RangeType const &range, const ExprAddedType &... exprsAddedInResidual) const
 
void updateTimeStep ()
 
- Public Member Functions inherited from Feel::FeelModels::ModelNumerical
virtual bool checkResults () const
 
template<typename SymbolsExprType >
bool checkResults (SymbolsExprType const &se) const
 
template<typename SpaceType >
auto createBdf (std::shared_ptr< SpaceType > space, std::string const &name, int bdfOrder, int nConsecutiveSave, std::string const &myFileFormat) const
 
double currentTime () const
 
bool doRestart () const
 
template<typename ExporterType , typename ModelFieldsType , typename SymbolsExprType = symbols_expression_empty_t, typename TupleExprOnRangeType = hana::tuple<>>
void executePostProcessExports (std::shared_ptr< ExporterType > exporter, double time, ModelFieldsType const &mFields, SymbolsExprType const &symbolsExpr=symbols_expression_empty_t{}, TupleExprOnRangeType const &tupleExprOnRange=hana::make_tuple())
 
template<typename ExporterType , typename ModelFieldsType , typename SymbolsExpr , typename TupleExprOnRangeType >
void executePostProcessExports (std::shared_ptr< ExporterType > exporter, std::string const &tag, double time, ModelFieldsType const &mFields, SymbolsExpr const &symbolsExpr, TupleExprOnRangeType const &tupleExprOnRange)
 
template<typename ExporterType , typename ModelFieldsType , typename SymbolsExprType = symbols_expression_empty_t, typename TupleExprOnRangeType = hana::tuple<>>
void executePostProcessExports (std::shared_ptr< ExporterType > exporter, std::string const &tag, double time, ModelFieldsType const &mFields, SymbolsExprType const &symbolsExpr=symbols_expression_empty_t{}, TupleExprOnRangeType const &tupleExprOnRange=hana::make_tuple())
 
template<typename MeshType , typename RangeType , typename SymbolsExpr , typename ModelFieldsType , typename ModelQuantitiesType >
void executePostProcessMeasures (double time, std::shared_ptr< MeshType > mesh, RangeType const &rangeMeshElements, SymbolsExpr const &symbolsExpr, ModelFieldsType const &mFields, ModelQuantitiesType const &mQuantities)
 
template<typename ModelFieldsType >
void executePostProcessSave (std::set< std::string > const &fieldsNamesToSave, std::string const &format, uint32_type index, ModelFieldsType const &fields)
 
template<typename ModelFieldsType >
void executePostProcessSave (uint32_type index, ModelFieldsType const &fields)
 
std::string exporterPath () const
 
GeomapStrategyType geomap () const
 
bool hasPostProcessExportsExpr (std::string const &exportTag="") const
 
bool hasPostProcessExportsField (std::string const &exportTag, std::string const &fieldName) const
 
bool hasPostProcessExportsField (std::string const &fieldName) const
 
bool isStationary () const
 
 ModelNumerical (ModelNumerical const &app)=default
 
 ModelNumerical (std::string const &_theprefix, std::string const &keyword, worldcomm_ptr_t const &_worldComm=Environment::worldCommPtr(), std::string const &subPrefix="", ModelBaseRepository const &modelRep=ModelBaseRepository(), ModelBaseCommandLineOptions const &modelCmdLineOpt=ModelBaseCommandLineOptions())
 
 ModelNumerical (std::string const &_theprefix, worldcomm_ptr_t const &_worldComm=Environment::worldCommPtr(), std::string const &subPrefix="", ModelBaseRepository const &modelRep=ModelBaseRepository(), ModelBaseCommandLineOptions const &modelCmdLineOpt=ModelBaseCommandLineOptions())
 
std::set< std::string > const & postProcessExportsAllFieldsAvailable (std::string const &exportTag="") const
 
std::set< std::string > const & postProcessExportsFields (std::string const &exportTag="") const
 
std::set< std::string > postProcessExportsFields (std::string const &tag, std::set< std::string > const &ifields, std::string const &prefix="") const
 
std::string const & postProcessExportsPidName (std::string const &exportTag="") const
 
ModelMeasuresStorage & postProcessMeasures ()
 
ModelMeasuresStorage const & postProcessMeasures () const
 
std::set< std::string > postProcessMeasuresQuantitiesNames (std::set< std::string > const &inames) const
 
std::set< std::string > const & postProcessSaveFields () const
 
std::set< std::string > postProcessSaveFields (std::set< std::string > const &ifields, std::string const &prefix="") const
 
fs::path const & postProcessSaveRepository () const
 
bool restartAtLastSave () const
 
std::string restartPath () const
 
void setExporterPath (std::string const &s)
 
void setRestart (bool b)
 
void setRestartAtLastSave (bool b)
 
void setRestartPath (std::string const &s)
 
void setStationary (bool b)
 
void setTimeFinal (double v)
 
void setTimeInitial (double v)
 
void setTimeOrder (int o)
 
void setTimeStep (double v)
 
double time () const
 
double timeFinal () const
 
double timeInitial () const
 
int timeOrder () const
 
double timeStep () const
 
int tsSaveFreq () const
 
bool tsSaveInFile () const
 
virtual void updateParameterValues_postProcess (std::map< std::string, double > &mp, std::string const &prefix_symbol) const
 
template<typename ExporterType , typename ModelFieldsType , typename SymbolsExprType , typename TupleExprOnRangeType >
bool updatePostProcessExports (std::shared_ptr< ExporterType > exporter, std::set< std::string > const &fields, double time, ModelFieldsType const &mFields, SymbolsExprType const &symbolsExpr, TupleExprOnRangeType const &tupleExprOnRange)
 
template<typename ExporterType , typename ModelFieldsType , typename SymbolsExpr , typename TupleExprOnRangeType >
bool updatePostProcessExports (std::shared_ptr< ExporterType > exporter, std::set< std::string > const &fieldsNamesToExport, double time, ModelFieldsType const &mFields, SymbolsExpr const &symbolsExpr, TupleExprOnRangeType const &tupleExprOnRange)
 
template<typename MeshType , typename RangeType , typename SymbolsExpr , typename ModelFieldsType , typename ModelQuantitiesType >
void updatePostProcessMeasures (std::shared_ptr< MeshType > mesh, RangeType const &rangeMeshElements, SymbolsExpr const &symbolsExpr, ModelFieldsType const &mFields, ModelQuantitiesType const &mQuantities)
 
template<typename MeshType , typename RangeType , typename SymbolsExpr , typename ModelFieldsType >
void updatePostProcessMeasuresNorm (std::shared_ptr< MeshType > mesh, RangeType const &rangeMeshElements, SymbolsExpr const &symbolsExpr, ModelFieldsType const &mFields)
 
template<typename MeasurePointEvalType , typename SymbolsExprType , typename ModelFieldsType >
void updatePostProcessMeasuresPoint (std::shared_ptr< MeasurePointEvalType > measurePointsEvaluation, SymbolsExprType const &se, ModelFieldsType const &mFields)
 
template<typename ModelQuantitiesType , typename SymbolsExprType = symbols_expression_empty_t>
void updatePostProcessMeasuresQuantities (ModelQuantitiesType const &mQuantities, SymbolsExprType const &symbolsExpr=symbols_expression_empty_t{})
 
template<typename MeshType , typename RangeType , typename SymbolsExpr , typename ModelFieldsType >
void updatePostProcessMeasuresStatistics (std::shared_ptr< MeshType > mesh, RangeType const &rangeMeshElements, SymbolsExpr const &symbolsExpr, ModelFieldsType const &mFields)
 
void updateTime (double t)
 
- 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
 
- Public Member Functions inherited from Feel::FeelModels::ModelAlgebraic
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::ModelMeshes< ModelAlgebraic::index_type >
void applyRemesh (std::string const &meshName, std::shared_ptr< MeshType > const &newMesh)
 
bool hasMeshMotion (std::string const &meshName) const
 
bool hasModelMesh (std::string const &meshName) const
 
void initMeasurePointsEvaluationTool (std::string const &meshName)
 
auto measurePointsEvaluationTool (std::string const &meshName)
 
auto mesh (std::string const &meshName) const
 
auto meshMotionTool (std::string const &meshName) const
 
auto modelFields (std::string const &prefix_field, std::string const &prefix_symbol="") const
 
ModelMesh< ModelAlgebraic::index_type > & modelMesh ()
 
ModelMesh< ModelAlgebraic::index_type > const & modelMesh () const
 
ModelMesh< ModelAlgebraic::index_type > & modelMesh (std::string const &meshName)
 
ModelMesh< ModelAlgebraic::index_type > const & modelMesh (std::string const &meshName) const
 
 ModelMeshes (ModelMeshes &&)=default
 
 ModelMeshes (ModelMeshes const &)=default
 
std::string repository_meshes () const
 
void saveMetadata () const
 
void setMesh (std::string const &meshName, mesh_base_ptrtype m)
 
void setModelMeshAsShared (ModelMesh< ModelAlgebraic::index_type > const &m)
 
void setModelMeshAsShared (std::string const &meshName, ModelMesh< ModelAlgebraic::index_type > const &m)
 shared data (mesh,space,...) between several ModelMesh
 
void setParameterValues (std::map< std::string, double > const &paramValues)
 
void setup (nl::json const &jarg)
 
void setup (nl::json const &jarg, std::set< std::string > const &keywordsToSetup)
 
void setupRestart (std::string const &meshName)
 
auto symbolsExpr (std::string const &prefix_symbol="meshes") const
 
tabulate_informations_ptr_t tabulateInformations (nl::json const &jsonInfo, TabulateInformationProperties const &tabInfoProp) const override
 
void updateForUse (std::string const &meshName)
 
void updateInformationObject (nl::json &p) const override
 
void updateInformationObject (nl::json &p, std::string const &prefix_symbol) const
 
void updateMeshAdaptation (std::string const &meshName, std::shared_ptr< typename mesh_adaptation_type::Event > event, SymbolsExprType const &se)
 
void updateMeshMotion (std::string const &meshName, SymbolsExprType const &se)
 
void updateTime (double time)
 
- Public Member Functions inherited from Feel::FeelModels::ModelPhysics< ConvexType::nDim >
void addPhysics (std::map< physic_id_type, std::shared_ptr< ModelPhysic< Dim > > > const &thePhysics)
 add physics if not already registered
 
bool hasPhysic (physic_id_type const &pId) const
 return true if physic id is already registered
 
void initPhysics (std::shared_ptr< ModelPhysics< nDim > > mphysics, ModelModels const &models)
 
void initPhysics (std::shared_ptr< ModelPhysics< nDim > > mphysics, std::function< void(PhysicsTree &)> lambdaInit)
 
 ModelPhysics (ModelPhysics &&)=default
 
 ModelPhysics (ModelPhysics const &)=default
 
 ModelPhysics (std::string const &modeling)
 
 ModelPhysics (std::string const &modeling, ModelBase &&mbase)
 
 ModelPhysics (std::string const &modeling, ModelBase const &mbase)
 
std::shared_ptr< ModelPhysic< Dim > > physic (physic_id_type const &pId) const
 return physic registered from physic id
 
std::string const & physicModeling () const
 return the physic modeling
 
std::map< physic_id_type, std::shared_ptr< ModelPhysic< nDim > > > const & physics () const
 return all physics registered
 
std::map< physic_id_type, std::shared_ptr< ModelPhysic< Dim > > > physics (std::string const &type) const
 return all physics registered related to a type of physic
 
std::set< physic_id_type > physicsAvailable () const
 return name of all physics registered
 
std::set< physic_id_type > physicsAvailable (std::string const &type) const
 return name of all physics registered related to a type of physic
 
std::set< physic_id_type > physicsAvailableFromCurrentType () const
 return name of all physics registered related to the current type
 
std::map< physic_id_type, std::shared_ptr< ModelPhysic< nDim > > > physicsFromCurrentType () const
 return all physics registered related to the current type
 
std::string const & physicType () const
 return the type of physic at top level
 
auto symbolsExprPhysics (std::map< physic_id_type, std::shared_ptr< ModelPhysic< nDim > > > const &mphysics) const
 
auto symbolsExprPhysicsFromCurrentType () const
 
tabulate_informations_ptr_t tabulateInformations (nl::json const &jsonInfo, TabulateInformationProperties const &tabInfoProp) const override
 
void updateInformationObjectFromCurrentType (nl::json &p) const
 

Static Public Member Functions

static Feel::po::options_description create_program_options (std::string const &prefix="heat")
 
template<typename ... Ts>
static self_ptrtype New (Ts &&... v)
 

Static Public Attributes

static const uint16_type nDim = convex_type::nDim
 
static const uint16_type nOrderGeo = convex_type::nOrder
 
static const uint16_type nOrderPoly = nOrderTemperature
 
static const uint16_type nOrderTemperature = BasisTemperatureType::nOrder
 
static const uint16_type nRealDim = convex_type::nRealDim
 
- Static Public Attributes inherited from Feel::FeelModels::ModelPhysics< ConvexType::nDim >
static const uint16_type nDim
 

Protected Types

using boundary_conditions_type = HeatBoundaryConditions
 
- Protected Types inherited from Feel::FeelModels::ModelNumerical
using super_model_base_type = ModelBase
 
using super_model_meshes_type = ModelMeshes< typename ModelAlgebraic::index_type >
 

Protected Attributes

bdf_temperature_ptrtype M_bdfTemperature
 
std::shared_ptr< boundary_conditions_type > M_boundaryConditions
 
std::map< std::string, double > M_currentParameterValues
 
export_ptrtype M_exporter
 
element_temperature_ptrtype M_fieldTemperature
 
materialsproperties_ptrtype M_materialsProperties
 
std::map< std::string, ModelMeasuresNormalFluxGeneric > M_postProcessMeasuresNormalHeatFlux
 
Range< mesh_type, MESH_ELEMENTS > M_rangeMeshElements
 
std::string M_solverName
 
bool M_stabilizationGLS
 
bool M_stabilizationGLS_checkConductivityDependencyOnCoordinates = true
 
stab_gls_parameter_ptrtype M_stabilizationGLSParameter
 
std::string M_stabilizationGLSType
 
std::string M_timeStepping
 
vector_ptrtype M_timeStepThetaSchemePreviousContrib
 
double M_timeStepThetaValue
 
DofTableExtendedType M_useExtendedDoftable = DofTableExtendedType::DEFAULT
 
space_temperature_ptrtype M_Xh
 
- Protected Attributes inherited from Feel::FeelModels::ModelPhysics< ConvexType::nDim >
std::string M_physicModeling
 
std::map< physic_id_type, std::shared_ptr< ModelPhysic< nDim > > > M_physics
 

Additional Inherited Members

- Protected Member Functions inherited from Feel::FeelModels::ModelNumerical
void addPostProcessExportsAllFieldsAvailable (std::set< std::string > const &ifields)
 
void addPostProcessExportsAllFieldsAvailable (std::string const &exportTag, std::set< std::string > const &ifields)
 
void addPostProcessMeasuresQuantitiesAllNamesAvailable (std::set< std::string > const &inames)
 
virtual void initPostProcess ()
 
template<typename MeshType , typename SymbolsExprType >
void initPostProcessMeshes (SymbolsExprType const &se)
 
template<typename MeshType >
auto modelFieldsMeshes (std::string const &prefix_field="", std::string const &prefix_symbol="") const
 
void setPostProcessExportsAllFieldsAvailable (std::set< std::string > const &ifields)
 
void setPostProcessExportsAllFieldsAvailable (std::string const &exportTag, std::set< std::string > const &ifields)
 
void setPostProcessExportsPidName (std::string const &exportTag, std::string const &pidName)
 
void setPostProcessExportsPidName (std::string const &pidName)
 
void setPostProcessMeasuresQuantitiesAllNamesAvailable (std::set< std::string > const &inames)
 
void setPostProcessSaveAllFieldsAvailable (std::set< std::string > const &ifields)
 
template<typename MeshType , bool AddFields = true>
auto symbolsExprMeshes () const
 
template<typename ElementType , typename RangeType , typename SymbolsExpr >
void updateInitialConditions (std::string const &fieldName, RangeType const &defaultRange, SymbolsExpr const &symbolsExpr, std::vector< std::shared_ptr< ElementType > > &dataToUpdate, std::map< int, double > const &priorTimes={{0, 0}})
 
- Protected Member Functions inherited from Feel::JournalWatcher
void applyUpdateInformationObject ()
 Protected Methods.
 
- Protected Member Functions inherited from Feel::FeelModels::ModelPhysics< ConvexType::nDim >
std::vector< std::shared_ptr< ModelPhysic< Dim > > > initPhysics (std::string const &type, ModelModels const &models, std::set< std::string > const &modelNameRequired, bool isRequired=true)
 
virtual void updatePhysics (PhysicsTreeNode &physicsTree, ModelModels const &models)
 

Detailed Description

template<typename ConvexType, typename BasisTemperatureType>
class Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >

class for heat transfer toolbox

Template Parameters
ConvexTypeconvex for the mesh
BasisTemperatureTypebasis type for Temperature
using heat_t = Heat< Simplex<nDim,1>, Lagrange<OrderT, Scalar,Continuous,PointSetFekete>>;
auto heat = std::make_shared<heat_t>("heat");
heat->init();
heat->printAndSaveInfo();
heat->solve();
heat->exportResults();

Member Function Documentation

◆ buildBlockMatrixGraph()

template<typename ConvexType , typename BasisTemperatureType >
BlocksBaseGraphCSR Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::buildBlockMatrixGraph ( ) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.

◆ checkResults()

template<typename ConvexType , typename BasisTemperatureType >
bool Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::checkResults ( ) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelNumerical.

◆ tabulateInformations()

template<typename ConvexType , typename BasisTemperatureType >
tabulate_informations_ptr_t Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::tabulateInformations ( nl::json const &  jsonInfo,
TabulateInformationProperties const &  tabInfoProp 
) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelBase.

◆ updateInformationObject()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateInformationObject ( nl::json &  p) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelBase.

◆ updateJacobian()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateJacobian ( DataUpdateJacobian &  data) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.

◆ updateJacobianDofElimination()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateJacobianDofElimination ( DataUpdateJacobian &  data) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.

◆ updateLinearPDE()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateLinearPDE ( DataUpdateLinear &  data) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.

◆ updateLinearPDEDofElimination()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateLinearPDEDofElimination ( DataUpdateLinear &  data) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.

◆ updateNewtonInitialGuess()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateNewtonInitialGuess ( DataNewtonInitialGuess &  data) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.

◆ updateResidual()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateResidual ( DataUpdateResidual &  data) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.

◆ updateResidualDofElimination()

template<typename ConvexType , typename BasisTemperatureType >
void Feel::FeelModels::Heat< ConvexType, BasisTemperatureType >::updateResidualDofElimination ( DataUpdateResidual &  data) const
overridevirtual

Reimplemented from Feel::FeelModels::ModelAlgebraic.