|
PLaSK library
|
Solver performing calculations in 2D Cartesian or Cylindrical space using finite element method. More...
#include <solvers/thermal/static/therm2d.hpp>
Classes | |
| struct | ThermalConductivityData |
Public Member Functions | |
| double | compute (int loops=1) |
| Run temperature calculations. | |
| double | getErr () const |
| Get max absolute correction for temperature. | |
| void | loadConfiguration (XMLReader &source, Manager &manager) override |
Load configuration from given source. | |
| ThermalFem2DSolver (const std::string &name="") | |
| std::string | getClassName () const override |
| Get name of solver. | |
| ~ThermalFem2DSolver () | |
| const LazyData< double > | getTemperatures (const shared_ptr< const MeshD< 2 > > &dest_mesh, InterpolationMethod method) const |
| const LazyData< Vec< 2 > > | getHeatFluxes (const shared_ptr< const MeshD< 2 > > &dest_mesh, InterpolationMethod method) |
| const LazyData< Tensor2< double > > | getThermalConductivity (const shared_ptr< const MeshD< 2 > > &dest_mesh, InterpolationMethod method) |
| std::string | getClassName () const |
| Get name of solver. | |
| std::string | getClassName () const |
| Get name of solver. | |
Public Member Functions inherited from plask::FemSolverWithMaskedMesh< Geometry2DType, RectangularMesh< 2 > > | |
| 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 () |
| 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 | 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. | |
| 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 | |
| int | loopno |
| Number of completed loops. | |
| double | maxT |
| Maximum temperature recorded. | |
| double | toterr |
| Maximum estimated error during all iterations (useful for single calculations managed by external python script) | |
| DataVector< double > | temperatures |
| Computed temperatures. | |
| DataVector< double > | thickness |
| Thicknesses of the layers. | |
| DataVector< Vec< 2, double > > | fluxes |
| Computed (only when needed) heat fluxes on our own mesh. | |
Protected Attributes inherited from plask::FemSolverWithMaskedMesh< Geometry2DType, RectangularMesh< 2 > > | |
| plask::shared_ptr< RectangularMaskedMesh< MeshT::DIM > > | maskedMesh |
| EmptyElementsHandling | empty_elements |
| 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 | |
Solver performing calculations in 2D Cartesian or Cylindrical space using finite element method.
Definition at line 28 of file therm2d.hpp.
| plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::ThermalFem2DSolver | ( | const std::string & | name = "" | ) |
Definition at line 19 of file therm2d.cpp.
| plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::~ThermalFem2DSolver | ( | ) |
Definition at line 35 of file therm2d.cpp.
| double plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::compute | ( | int | loops = 1 | ) |
Run temperature calculations.
| loops | maximum number of loops to run |
Definition at line 444 of file therm2d.cpp.
|
virtual |
Get name of solver.
Implements plask::Solver.
Definition at line 609 of file therm2d.cpp.
|
virtual |
Get name of solver.
Implements plask::Solver.
Definition at line 610 of file therm2d.cpp.
|
overridevirtual |
|
inline |
Get max absolute correction for temperature.
Definition at line 89 of file therm2d.hpp.
| const LazyData< Vec< 2 > > plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::getHeatFluxes | ( | const shared_ptr< const MeshD< 2 > > & | dest_mesh, |
| InterpolationMethod | method | ||
| ) |
Definition at line 556 of file therm2d.cpp.
| const LazyData< double > plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::getTemperatures | ( | const shared_ptr< const MeshD< 2 > > & | dest_mesh, |
| InterpolationMethod | method | ||
| ) | const |
Definition at line 544 of file therm2d.cpp.
| const LazyData< Tensor2< double > > plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::getThermalConductivity | ( | const shared_ptr< const MeshD< 2 > > & | dest_mesh, |
| InterpolationMethod | method | ||
| ) |
Definition at line 600 of file therm2d.cpp.
|
overridevirtual |
Load configuration from given source.
XML reader (source) point to opening of this solver tag and after return from this method should point to this solver closing tag.
| source | source of configuration |
| manager | manager from which information about geometry, meshes, materials, and so on can be get if needed |
Reimplemented from plask::SolverWithMesh< SpaceT, MeshT >.
Definition at line 40 of file therm2d.cpp.
|
protected |
Setup matrix.
|
overrideprotectedvirtual |
Initialize the solver.
Reimplemented from plask::FemSolverWithMaskedMesh< Geometry2DType, RectangularMesh< 2 > >.
Definition at line 72 of file therm2d.cpp.
|
overrideprotectedvirtual |
|
protected |
Create 2D-vector with calculated heat fluxes.
Definition at line 505 of file therm2d.cpp.
|
protected |
Definition at line 177 of file therm2d.cpp.
|
protected |
Definition at line 302 of file therm2d.cpp.
|
protected |
Set stiffness matrix + load vector.
| BoundaryConditions<RectangularMesh<2>::Boundary, Convection> plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::convection_boundary |
Boundary condition of convection.
Definition at line 67 of file therm2d.hpp.
|
protected |
Computed (only when needed) heat fluxes on our own mesh.
Definition at line 39 of file therm2d.hpp.
| BoundaryConditions<RectangularMesh<2>::Boundary, double> plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::heatflux_boundary |
Boundary condition of constant heat flux [W/m^2].
Definition at line 66 of file therm2d.hpp.
| ReceiverFor<Heat, Geometry2DType> plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::inHeat |
Definition at line 76 of file therm2d.hpp.
| double plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::inittemp |
Initial temperature.
Definition at line 79 of file therm2d.hpp.
|
protected |
Number of completed loops.
Definition at line 30 of file therm2d.hpp.
| double plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::maxerr |
Maximum residual error accepted as convergence.
Definition at line 78 of file therm2d.hpp.
|
protected |
Maximum temperature recorded.
Definition at line 31 of file therm2d.hpp.
| ProviderFor<HeatFlux,Geometry2DType>::Delegate plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::outHeatFlux |
Definition at line 72 of file therm2d.hpp.
| ProviderFor<Temperature,Geometry2DType>::Delegate plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::outTemperature |
Definition at line 70 of file therm2d.hpp.
| ProviderFor<ThermalConductivity,Geometry2DType>::Delegate plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::outThermalConductivity |
Definition at line 74 of file therm2d.hpp.
| BoundaryConditions<RectangularMesh<2>::Boundary, Radiation> plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::radiation_boundary |
Boundary condition of radiation.
Definition at line 68 of file therm2d.hpp.
| BoundaryConditions<RectangularMesh<2>::Boundary, double> plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::temperature_boundary |
Boundary condition of constant temperature (K)
Definition at line 64 of file therm2d.hpp.
|
protected |
Computed temperatures.
Definition at line 35 of file therm2d.hpp.
|
protected |
Thicknesses of the layers.
Definition at line 37 of file therm2d.hpp.
|
protected |
Maximum estimated error during all iterations (useful for single calculations managed by external python script)
Definition at line 32 of file therm2d.hpp.