PLaSK library

Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
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.
FemMatrix * | getMatrix ()
FemMatrix * | getMatrix ()
Public Member Functions inherited from plask::FemSolverWithMesh< SpaceT, MeshT >
| FemSolverWithMesh (const std::string &name="")
bool | parseFemConfiguration (XMLReader &reader, Manager &manager)
FemMatrix * | getMatrix ()
FemMatrix * | getMatrix ()
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.
MeshT & | meshRef () const
| Get current module mesh.
shared_ptr< MeshT > | getMesh () 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< SpaceT > | getGeometry () 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, ValT > | dataLog (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, ValT > | dataLog (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< MeshT > | mesh
| 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< SpaceT > | geometry
| 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]

template<typename SpaceT , typename MeshT >

FemMatrix * plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::getMatrix | ( |  | ) |
| inline

Definition at line 196 of file fem_solver.hpp.

## ◆ getMatrix() [2/2]

FemMatrix * plask::FemSolverWithMaskedMesh< Geometry3D, RectangularMesh< 3 > >::getMatrix | ( |  | ) |
| inline

Definition at line 219 of file fem_solver.hpp.

## ◆ onInitialize()

template<typename SpaceT , typename MeshT >

void plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::onInitialize | ( |  | ) |
| inline virtual

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()

template<typename SpaceT , typename MeshT >

void plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::setEmptyElements | ( | EmptyElementsHandling | val | ) |
| inline

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

template<typename SpaceT , typename MeshT >

EmptyElementsHandling plask::FemSolverWithMaskedMesh< SpaceT, MeshT >::empty_elements = EMPTY_ELEMENTS_DEFAULT
| protected

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:

- plask/common/fem/fem_solver.hpp