PLaSK library
Loading...
Searching...
No Matches
plask::FemSolverWithMaskedMesh< SpaceT, MeshT > Struct Template Reference

#include <plask/common/fem/fem_solver.hpp>

Inheritance diagram for plask::FemSolverWithMaskedMesh< SpaceT, MeshT >:
[legend]
Collaboration diagram for plask::FemSolverWithMaskedMesh< SpaceT, MeshT >:
[legend]

Public Member Functions

 FemSolverWithMaskedMesh (const std::string &name="")
 
EmptyElementsHandling getEmptyElements () const
 Are we using full mesh?
 
void setEmptyElements (EmptyElementsHandling val)
 Set whether we should use full mesh.
 
bool parseFemConfiguration (XMLReader &reader, Manager &manager)
 
void setupMaskedMesh ()
 
void onInitialize ()
 Initialize the solver.
 
FemMatrixgetMatrix ()
 
FemMatrixgetMatrix ()
 
- Public Member Functions inherited from plask::FemSolverWithMesh< SpaceT, MeshT >
 FemSolverWithMesh (const std::string &name="")
 
bool parseFemConfiguration (XMLReader &reader, Manager &manager)
 
FemMatrixgetMatrix ()
 
FemMatrixgetMatrix ()
 
- Public Member Functions inherited from plask::SolverWithMesh< SpaceT, MeshT >
 SolverWithMesh (const std::string &name="")
 
 ~SolverWithMesh ()
 
void loadConfiguration (XMLReader &source, Manager &manager) override
 Load configuration from given source.
 
void parseStandardConfiguration (XMLReader &source, Manager &manager, const std::string &expected_msg="solver configuration element")
 
virtual void onMeshChange (const typename MeshT::Event &PLASK_UNUSED(evt))
 This method is called just after the mesh has been changed.
 
void onGeometryChange (const Geometry::Event &PLASK_UNUSED(evt)) override
 This method is called when the geometry is changed.
 
MeshTmeshRef () const
 Get current module mesh.
 
shared_ptr< MeshTgetMesh () const
 Get current solver mesh.
 
void setMesh (const shared_ptr< MeshT > &mesh)
 Set new mesh for the solver.
 
void setMesh (shared_ptr< MeshGeneratorD< MeshT::DIM > > generator)
 Set new mesh got from generator.
 
- Public Member Functions inherited from plask::SolverOver< SpaceT >
 SolverOver (const std::string &name="")
 
 ~SolverOver ()
 
void parseStandardConfiguration (XMLReader &source, Manager &manager, const std::string &expected_msg="solver configuration element")
 
virtual void onGeometryChange (const Geometry::Event &)
 This method is called when the geometry is changed.
 
shared_ptr< SpaceTgetGeometry () const
 Get current solver geometry space.
 
void setGeometry (const shared_ptr< SpaceT > &geometry)
 Set new geometry for the solver.
 
- Public Member Functions inherited from plask::Solver
bool initCalculation ()
 This should be called on beginning of each calculation method to ensure that solver will be initialized.
 
 Solver (const std::string &name="")
 Construct uninitialized solver.
 
virtual ~Solver ()
 Virtual destructor (for subclassing). Do nothing.
 
void parseStandardConfiguration (XMLReader &source, Manager &manager, const std::string &expected_msg="solver configuration element")
 Load standard configuration (geometry, mesh) tags from source.
 
bool isInitialized ()
 Check if solver is already initialized.
 
void invalidate ()
 This method should be and is called if something important was changed: calculation space, mesh, etc.
 
virtual std::string getClassName () const =0
 Get name of solver.
 
std::string getId () const
 Get solver id.
 
std::string getName () const
 
virtual std::string getClassDescription () const
 Get a description of this solver.
 
template<typename ArgT = double, typename ValT = double>
DataLog< ArgT, ValTdataLog (const std::string &chart_name, const std::string &axis_arg_name, const std::string &axis_val_name)
 
template<typename ArgT = double, typename ValT = double>
DataLog< ArgT, ValTdataLog (const std::string &axis_arg_name, const std::string &axis_val_name)
 
template<typename ... Args>
void writelog (LogLevel level, std::string msg, Args &&... params) const
 Log a message for this solver.
 

Protected Attributes

plask::shared_ptr< RectangularMaskedMesh< MeshT::DIM > > maskedMesh = plask::make_shared<RectangularMaskedMesh<MeshT::DIM>>()
 
EmptyElementsHandling empty_elements = EMPTY_ELEMENTS_DEFAULT
 Should we use full mesh?
 
- Protected Attributes inherited from plask::SolverWithMesh< SpaceT, MeshT >
shared_ptr< MeshTmesh
 Mesh over which the calculations are performed.
 
boost::signals2::connection mesh_signal_connection
 Connection of mesh to onMeshChange method, see http://www.boost.org/doc/libs/1_55_0/doc/html/signals2/tutorial.html#idp204830936.
 
- Protected Attributes inherited from plask::SolverOver< SpaceT >
shared_ptr< SpaceTgeometry
 Space in which the calculations are performed.
 
- Protected Attributes inherited from plask::Solver
bool initialized
 true only if solver is initialized
 

Additional Inherited Members

- Public Types inherited from plask::SolverWithMesh< SpaceT, MeshT >
typedef MeshT MeshType
 Type of the mesh for this solver.
 
- Public Types inherited from plask::SolverOver< SpaceT >
typedef SpaceT SpaceType
 of the space for this solver
 
- Public Attributes inherited from plask::FemSolverWithMesh< SpaceT, MeshT >
FemMatrixAlgorithm algorithm = ALGORITHM_CHOLESKY
 Factorization algorithm to use.
 
IterativeMatrixParams iter_params
 Parameters of iterative solver.
 
- Protected Member Functions inherited from plask::SolverOver< SpaceT >
template<typename Boundary , typename ConditionT >
void readBoundaryConditions (Manager &manager, XMLReader &reader, BoundaryConditions< Boundary, ConditionT > &dest)
 Read boundary conditions using information about the geometry of this solver.
 
- Protected Member Functions inherited from plask::Solver
virtual void onInvalidate ()
 This method is called by invalidate() to reset stored values.
 

Detailed Description

template<typename SpaceT, typename MeshT>
struct plask::FemSolverWithMaskedMesh< SpaceT, MeshT >

Definition at line 145 of file fem_solver.hpp.

Constructor & Destructor Documentation

◆ FemSolverWithMaskedMesh()

template<typename SpaceT , typename MeshT >
plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::FemSolverWithMaskedMesh ( const std::string &  name = "")
inline

Definition at line 149 of file fem_solver.hpp.

Member Function Documentation

◆ getEmptyElements()

template<typename SpaceT , typename MeshT >
EmptyElementsHandling plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::getEmptyElements ( ) const
inline

Are we using full mesh?

Definition at line 157 of file fem_solver.hpp.

◆ getMatrix() [1/2]

Definition at line 196 of file fem_solver.hpp.

◆ getMatrix() [2/2]

Definition at line 219 of file fem_solver.hpp.

◆ onInitialize()

template<typename SpaceT , typename MeshT >
void plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::onInitialize ( )
inlinevirtual

Initialize the solver.

Default implementation just does nothing, however it is a good idea to overwrite it in subclasses and put initialization code in it.

Reimplemented from plask::Solver.

Reimplemented in plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >, and plask::thermal::tstatic::ThermalFem3DSolver.

Definition at line 191 of file fem_solver.hpp.

◆ parseFemConfiguration()

template<typename SpaceT , typename MeshT >
bool plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::parseFemConfiguration ( XMLReader reader,
Manager manager 
)
inline

Definition at line 164 of file fem_solver.hpp.

◆ setEmptyElements()

Set whether we should use full mesh.

Definition at line 159 of file fem_solver.hpp.

◆ setupMaskedMesh()

template<typename SpaceT , typename MeshT >
void plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::setupMaskedMesh ( )
inline

Definition at line 182 of file fem_solver.hpp.

Member Data Documentation

◆ empty_elements

Should we use full mesh?

Definition at line 153 of file fem_solver.hpp.

◆ maskedMesh

template<typename SpaceT , typename MeshT >
plask::shared_ptr<RectangularMaskedMesh<MeshT::DIM> > plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::maskedMesh = plask::make_shared<RectangularMaskedMesh<MeshT::DIM>>()
protected

Definition at line 152 of file fem_solver.hpp.


The documentation for this struct was generated from the following file: