Logbook  (07-04-2025)
Static problems
SolverSSOLIIIAXI Class Reference

Implements the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-axi/) numerical experiment. More...

#include <solver.hpp>

Inheritance diagram for SolverSSOLIIIAXI:
Collaboration diagram for SolverSSOLIIIAXI:

Public Member Functions

 SolverSSOLIIIAXI (unsigned int p, unsigned int mapping_degree, unsigned int r, std::string fname)
 
- Public Member Functions inherited from StaticScalarSolver::Solver< 2 >
 Solver (unsigned int p, unsigned int mapping_degree, unsigned int type_of_pde_rhs, std::string fname="data", const Function< dim > *exact_solution=nullptr, bool axisymmetric=false, bool vector_potential=false, bool print_time_tables=false, bool project_exact_solution=false, bool write_higher_order_cells=false)
 The only constructor. More...
 
void setup ()
 Initializes system matrix and the right-hand side vector, etc. More...
 
void assemble ()
 Assembles the system matrix and the right-hand side vector.
 
void compute_error_norms ()
 Computes error norms.
 
void project_exact_solution_fcn ()
 Projects exact solution. More...
 
void save () const
 Saves simulation results into a vtk or vtu file. More...
 
void save_matrix_and_rhs_to_csv (std::string fname) const
 Saves the system matrix and the right-hand side into a csv file. More...
 
void clear ()
 Releases computer memory associated with the system matrix and right-hand side.
 
const Triangulation< dim > & get_tria () const
 Returns a reference to triangulation.
 
const DoFHandler< dim > & get_dof_handler () const
 Returns a reference to dof handler.
 
const Vector< double > & get_solution () const
 Returns a reference to the solution.
 
unsigned int get_n_cells () const
 Returns the number of active cells in the mesh.
 
unsigned int get_n_vertices () const
 Returns the number of vertices.
 
unsigned int get_n_used_vertices () const
 Returns the number of used vertices.
 
unsigned int get_n_lines () const
 Returns the number of lines.
 
unsigned int get_n_dofs () const
 Returns the total amount of the degrees of freedom.
 
unsigned int get_type_of_pde_rhs () const
 Returns the value of type_of_pde_rhs.
 
double get_L2_norm () const
 Returns \(L^2\) error norm.
 
double get_H1_norm () const
 Returns \(H^1\) error norm.
 
double get_Linfty_norm () const
 Returns \(L^{\infty}\) error norm.
 
unsigned int get_mapping_degree () const
 Returns degree of the interpolating Lagrange polynomials used for mapping from the reference cell to the real mesh cell and back.
 
void run ()
 Runs the simulation. More...
 

Additional Inherited Members

- Public Attributes inherited from SettingsSSOLIIIAXI
const unsigned int nr_threads_max = 0
 If greater than zero, limits the amount of threads used in the simulations.
 
const double mu_0 = permeability_fs
 The permeability of free space.
 
const double mu_r = 4.0
 The relative permeability of the magnetic core.
 
const double mu = mu_r * mu_0
 The permeability of the magnetic core.
 
const double K_0 = 1.0
 A constant that defines the magnitude of the volume free-current density.
 
const double d1 = 0.1
 The width of the rectangle in the middle of the mesh.
 
const double rd1 = sqrt(2) * d1
 The radius of the circle that encloses the rectangle in the middle of the mesh.
 
const double a1 = 0.3
 The inner radius of the magnetic core.
 
const double b1 = 0.6
 The outer radius of the magnetic core.
 
const double a2 = 0.9
 The inner radius of the coil.
 
const double b2 = 1.2
 The outer radius of the coil.
 
const double d2 = 1.5
 The radius of the local mesh. The error norms are computer within the local mesh.
 
const double d3 = 3.0
 The radius of the problem domain.
 
const double H_0 = (1.0 / 3.0) * K_0 * (pow(b2, 2) - pow(a2, 2))
 A constant used for calculating the exact solution.
 
const types::material_id mid_1 = 1
 The ID of the material outside the coil and the magnetic core.
 
const types::material_id mid_2 = 2
 The ID of the material inside the magnetic core.
 
const types::material_id mid_3 = 3
 The ID of the material inside the coil, i.e., the windings.
 
const types::boundary_id bid_infty = 4
 The ID of the curved segment of the boundary of the problem domain. Is non used in this configuration.
 
const types::boundary_id bid_axi = 1
 The ID of the straight segment of the boundary of the problem domain.
 
const double eps = 1e-12
 Two values in double format are considered to be equal if the absolute value of their difference is less than eps.
 
const bool print_time_tables = false
 If set to true, the program will print time tables on the screen.
 
const bool project_exact_solution = false
 If set to true, the program will project the exact solution. More...
 
const bool log_cg_convergence = false
 If set to true, saves the residual at each iteration of the CG solver. The names of the files fit the following wildcard *_cg_convergence.csv. More...
 
- Public Attributes inherited from Constants::Physics
const double pi
 The ratio between the circumference and the diameter of any circle, \(\pi\). More...
 
const double c = 299792458.0
 The speed of light in free space, \(c\).
 
const double permeability_fs = 4.0 * pi * 1.0e-7
 The permeability of the free space, \(\mu_0\).
 
const double permittivity_fs = 1.0 / (std::pow(c, 2) * permeability_fs)
 The permittivity of the free space, \(\epsilon_0\).
 
- Protected Attributes inherited from StaticScalarSolver::Solver< 2 >
std::map< types::boundary_id, const Function< dim > * > dirichlet_stack
 A map that contains pairs of boundary IDs and the corresponding Dirichlet boundary conditions. More...
 
Triangulation< dim > triangulation
 The mesh.
 
const FE_Q< dim > fe
 The finite elements.
 
DoFHandler< dim > dof_handler
 The degrees-of-freedom handler.
 
Vector< double > solution
 The solution vector, i.e., degrees of freedom yielded by the simulation.
 
Vector< double > projected_exact_solution
 The projected exact solution vector.
 
AffineConstraints< double > constraints
 The constraints associated with the Dirichlet boundary conditions.
 
SparsityPattern sparsity_pattern
 The sparsity pattern of the system matrix.
 
SparseMatrix< double > system_matrix
 The system matrix.
 
Vector< double > system_rhs
 The system right-hand side vector.
 
double L2_norm
 The \(L^2\) error norm.
 
double Linfty_norm
 The \(L^{\infty}\) error norm.
 
double H1_norm
 The \(H^1\) error semi-norm.
 

Detailed Description

Implements the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-axi/) numerical experiment.

Definition at line 37 of file solver.hpp.

Constructor & Destructor Documentation

◆ SolverSSOLIIIAXI()

SolverSSOLIIIAXI::SolverSSOLIIIAXI ( unsigned int  p,
unsigned int  mapping_degree,
unsigned int  r,
std::string  fname 
)
inline

The constructor.

Parameters
[in]p- The degree of the interpolating polynomials of the Lagrange finite elements, FE_Q.
[in]mapping_degree- The degree of the interpolating polynomials used for mapping.
[in]r- The parameter that encodes the degree of mesh refinement. Must coincide with one of the values set in ssol-iii-axi/gmsh/build. This parameter is used to compose the name of the mesh file to be uploaded from ssol-iii-axi/gmsh/data/.
[in]fname- The name of the vtu file without extension to save the data.

Definition at line 59 of file solver.hpp.


The documentation for this class was generated from the following files: