|
PLaSK library
|
Solver performing calculations in 2D Cartesian or Cylindrical space using finite element method. More...
#include <solvers/electrical/capacitance/capacitance2d.hpp>
Classes | |
| struct | Active |
| Details of active region. More... | |
Public Member Functions | |
| std::string | getClassName () const override |
| Get name of solver. | |
| double | getFrequency () const |
| Return current frequency. | |
| void | setFrequency (double freq) |
| Set new frequency. | |
| void | compute () |
| Run electrical calculations. | |
| dcomplex | integrateCurrent (size_t vindex, bool active_current=false, bool onlyactive=false) const |
| Integrate vertical total current (AC only) at certain level. | |
| dcomplex | getAcCurrent (size_t nact=0, bool active_current=false) const |
| Integrate vertical current (AC only) flowing vertically through active region. | |
| dcomplex | getImpedance () const |
| Compute impedance at given frequency. | |
| dcomplex | getS11 (dcomplex Z0=50.) const |
| Compute structure S11 parameter at given frequency. | |
| void | loadConfiguration (XMLReader &source, Manager &manager) override |
Load configuration from given source. | |
| void | parseConfiguration (XMLReader &source, Manager &manager) |
| Capacitance2DSolver (const std::string &name="") | |
| ~Capacitance2DSolver () | |
| dcomplex | integrateCurrent (size_t vindex, bool active_current, bool onlyactive) const |
| dcomplex | integrateCurrent (size_t vindex, bool active_current, bool onlyactive) const |
| std::string | getClassName () const |
| Get name of solver. | |
| std::string | getClassName () const |
| Get name of solver. | |
Public Member Functions inherited from plask::electrical::capacitance::ComplexFemSolverWithMaskedMesh< Geometry2DType, RectangularMesh< 2 > > | |
| ComplexFemSolverWithMaskedMesh (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< dcomplex > * | getMatrix () |
| FemMatrix< dcomplex > * | getMatrix () |
Public Member Functions inherited from plask::electrical::capacitance::ComplexFemSolverWithMesh< SpaceT, MeshT > | |
| ComplexFemSolverWithMesh (const std::string &name="") | |
| bool | parseFemConfiguration (XMLReader &reader, Manager &manager) |
| FemMatrix< dcomplex > * | getMatrix () |
| FemMatrix< dcomplex > * | 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. | |
| 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. | |
Public Attributes | |
| BoundaryConditions< RectangularMesh< 2 >::Boundary, dcomplex > | voltage_boundary |
| Boundary condition. | |
| ProviderFor< AcVoltage, Geometry2DType >::Delegate | outAcVoltage |
| ProviderFor< AcCurrentDensity, Geometry2DType >::Delegate | outAcCurrentDensity |
| ReceiverFor< Conductivity, Geometry2DType > | inDifferentialConductivity |
| ReceiverFor< Temperature, Geometry2DType > | inTemperature |
Public Attributes inherited from plask::electrical::capacitance::ComplexFemSolverWithMesh< SpaceT, MeshT > | |
| ComplexFemMatrixAlgorithm | algorithm = ALGORITHM_GAUSS |
| Factorization algorithm to use. | |
Protected Member Functions | |
| void | setLocalMatrix (dcomplex &k44, dcomplex &k33, dcomplex &k22, dcomplex &k11, dcomplex &k43, dcomplex &k21, dcomplex &k42, dcomplex &k31, dcomplex &k32, dcomplex &k41, dcomplex ky, double width, const Vec< 2, double > &midpoint) |
| Save locate stiffness matrix to global one. | |
| void | onInitialize () override |
| Initialize the solver. | |
| void | onInvalidate () override |
| Invalidate the data. | |
| size_t | isActive (const Vec< 2 > &point) const |
Return true if the specified point is at junction. | |
| size_t | isActive (const RectangularMaskedMesh2D::Element &element) const |
Return true if the specified element is a junction. | |
| void | setupActiveRegions () |
| Get info on active region. | |
| void | setMatrix (FemMatrix< dcomplex > &A, DataVector< dcomplex > &B, const BoundaryConditionsWithMesh< RectangularMesh< 2 >::Boundary, dcomplex > &bvoltage) |
| Set stiffness matrix + load vector. | |
| void | loadConductivities () |
| Vec< 2, dcomplex > | getElementCurrentDensity (const RectangularMaskedMesh2D::Element &element, bool active_current=false) const |
| void | computeCurrentDensities () |
| const LazyData< dcomplex > | getVoltage (shared_ptr< const MeshD< 2 > > dest_mesh, InterpolationMethod method) const |
| const LazyData< Vec< 2, dcomplex > > | getCurrentDensities (shared_ptr< const MeshD< 2 > > dest_mesh, InterpolationMethod method) |
| void | setLocalMatrix (dcomplex &, dcomplex &, dcomplex &, dcomplex &, dcomplex &, dcomplex &, dcomplex &, dcomplex &, dcomplex &, dcomplex &, dcomplex, double, const Vec< 2, double > &) |
| void | setLocalMatrix (dcomplex &k44, dcomplex &k33, dcomplex &k22, dcomplex &k11, dcomplex &k43, dcomplex &k21, dcomplex &k42, dcomplex &k31, dcomplex &k32, dcomplex &k41, dcomplex, double, const Vec< 2, double > &midpoint) |
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 Attributes | |
| std::vector< Active > | active |
| Active regions information. | |
| DataVector< dcomplex > | potentials |
| Computed potentials. | |
| DataVector< Tensor2< dcomplex > > | conductivities |
| Conductivities in mesh points. | |
| DataVector< Vec< 2, dcomplex > > | currents |
| Computed current densities. | |
| double | frequency = 20. |
| Frequency of AC signal [GHz]. | |
Protected Attributes inherited from plask::electrical::capacitance::ComplexFemSolverWithMaskedMesh< 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 27 of file capacitance2d.hpp.
| plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::Capacitance2DSolver | ( | const std::string & | name = "" | ) |
Definition at line 19 of file capacitance2d.cpp.
| plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::~Capacitance2DSolver | ( | ) |
Definition at line 45 of file capacitance2d.cpp.
| void plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::compute | ( | ) |
Run electrical calculations.
| loops | maximum number of loops to run |
Definition at line 259 of file capacitance2d.cpp.
|
protected |
Definition at line 306 of file capacitance2d.cpp.
| dcomplex plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::getAcCurrent | ( | size_t | nact = 0, |
| bool | active_current = false |
||
| ) | const |
Integrate vertical current (AC only) flowing vertically through active region.
| nact | number of the active region |
| active_current | if true, the active current (in phase with the voltage) is returned, otherwise the total current is returned |
Definition at line 350 of file capacitance2d.cpp.
|
virtual |
Get name of solver.
Implements plask::Solver.
Definition at line 411 of file capacitance2d.cpp.
|
virtual |
Get name of solver.
Implements plask::Solver.
Definition at line 412 of file capacitance2d.cpp.
|
overridevirtual |
|
protected |
Definition at line 387 of file capacitance2d.cpp.
|
protected |
Definition at line 288 of file capacitance2d.cpp.
|
inline |
Return current frequency.
Definition at line 142 of file capacitance2d.hpp.
| dcomplex plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::getImpedance | ( | ) | const |
Compute impedance at given frequency.
Definition at line 359 of file capacitance2d.cpp.
| dcomplex plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::getS11 | ( | dcomplex | Z0 = 50. | ) | const |
Compute structure S11 parameter at given frequency.
| Z0 | reference impedance (default 50 Ohm) |
Definition at line 370 of file capacitance2d.cpp.
|
protected |
Definition at line 375 of file capacitance2d.cpp.
| dcomplex plask::electrical::capacitance::Capacitance2DSolver< Geometry2DCartesian >::integrateCurrent | ( | size_t | vindex, |
| bool | active_current, | ||
| bool | onlyactive | ||
| ) | const |
Definition at line 315 of file capacitance2d.cpp.
| dcomplex plask::electrical::capacitance::Capacitance2DSolver< Geometry2DCylindrical >::integrateCurrent | ( | size_t | vindex, |
| bool | active_current, | ||
| bool | onlyactive | ||
| ) | const |
Definition at line 332 of file capacitance2d.cpp.
| dcomplex plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::integrateCurrent | ( | size_t | vindex, |
| bool | active_current = false, |
||
| bool | onlyactive = false |
||
| ) | const |
Integrate vertical total current (AC only) at certain level.
| vindex | vertical index of the element mesh to perform integration at |
| active_current | if true, the active current (in phase with the voltage) is returned, otherwise the total current is returned |
| onlyactive | if true only current in the active region is considered |
|
inlineprotected |
Return true if the specified element is a junction.
Definition at line 111 of file capacitance2d.hpp.
|
inlineprotected |
Return true if the specified point is at junction.
| point | point to test |
Definition at line 85 of file capacitance2d.hpp.
|
protected |
< Cached complex conductivities
Definition at line 243 of file capacitance2d.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::Solver.
Definition at line 28 of file capacitance2d.cpp.
|
overrideprotectedvirtual |
Initialize the solver.
Reimplemented from plask::Solver.
Definition at line 115 of file capacitance2d.cpp.
|
overrideprotectedvirtual |
Invalidate the data.
Reimplemented from plask::Solver.
Definition at line 122 of file capacitance2d.cpp.
| void plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::parseConfiguration | ( | XMLReader & | source, |
| Manager & | manager | ||
| ) |
Definition at line 33 of file capacitance2d.cpp.
|
inline |
Set new frequency.
Definition at line 145 of file capacitance2d.hpp.
|
inlineprotected |
Definition at line 129 of file capacitance2d.cpp.
|
inlineprotected |
Save locate stiffness matrix to global one.
|
inlineprotected |
Definition at line 146 of file capacitance2d.cpp.
|
protected |
Set stiffness matrix + load vector.
Definition at line 174 of file capacitance2d.cpp.
|
protected |
Get info on active region.
Definition at line 47 of file capacitance2d.cpp.
|
protected |
Active regions information.
Definition at line 52 of file capacitance2d.hpp.
|
protected |
Conductivities in mesh points.
Definition at line 55 of file capacitance2d.hpp.
|
protected |
Computed current densities.
Definition at line 56 of file capacitance2d.hpp.
|
protected |
Frequency of AC signal [GHz].
Definition at line 58 of file capacitance2d.hpp.
| ReceiverFor<Conductivity, Geometry2DType> plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::inDifferentialConductivity |
Definition at line 135 of file capacitance2d.hpp.
| ReceiverFor<Temperature, Geometry2DType> plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::inTemperature |
Definition at line 137 of file capacitance2d.hpp.
| ProviderFor<AcCurrentDensity,Geometry2DType>::Delegate plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::outAcCurrentDensity |
Definition at line 133 of file capacitance2d.hpp.
| ProviderFor<AcVoltage,Geometry2DType>::Delegate plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::outAcVoltage |
Definition at line 131 of file capacitance2d.hpp.
|
protected |
Computed potentials.
Definition at line 54 of file capacitance2d.hpp.
| BoundaryConditions<RectangularMesh<2>::Boundary, dcomplex> plask::electrical::capacitance::Capacitance2DSolver< Geometry2DType >::voltage_boundary |
Boundary condition.
Definition at line 129 of file capacitance2d.hpp.