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

Implements the solver of the Current vector potential (cvp-i/) numerical experiment. More...

#include <solver.hpp>

Inheritance diagram for SolverCVPI:
Collaboration diagram for SolverCVPI:

Public Member Functions

 SolverCVPI (unsigned int p, unsigned int mapping_degree, unsigned int r, std::string fname)
 
- Public Member Functions inherited from StaticVectorSolver::Solver1< 3 >
 Solver1 (unsigned int p, unsigned int mapping_degree, unsigned int type_of_pde_rhs=3, double eta_squared=0.0, std::string fname="data", const Function< dim > *exact_solution=nullptr, 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. 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 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 solution.
 
unsigned int get_n_cells () const
 Returns the number of active cells in the mesh.
 
unsigned int get_n_dofs () const
 Returns the total amount of the degrees of freedom.
 
unsigned int get_rhs_type () const
 Returns the value of type_of_pde_rhs.
 
double get_L2_norm () const
 Returns \(L^2\) 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 SettingsCVPI
const unsigned int nr_threads_max = 0
 If greater than zero, limits the amount of threads used in the simulations.
 
const double d1 = 0.1
 The half-side of the cube in the middle of the mesh.
 
const double rd1 = sqrt(3) * d1
 The radius of the sphere that encloses the cube in the middle of the mesh.
 
const double a = 0.3
 The inner radius of the coil.
 
const double b = 0.5
 The outer radius of the coil.
 
const double d2 = 1.0
 The radius of the boundary of the problem domain.
 
const types::boundary_id bid_dirichlet = 1
 The Dirichlet boundary condition will be applied to the boundaries with ID = 1.
 
const types::material_id mid_1 = 1
 The ID of the material outside the coil, i.e., Jf=0.
 
const types::material_id mid_2 = 2
 The ID of the material inside the coil, i.e., Jf>0.
 
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 StaticVectorSolver::Solver1< 3 >
std::map< types::boundary_id, const Function< dim > * > dirichlet_stack
 A map that contains pairs of boundary IDs and the corresponding Dirichlet boundary conditions. All boundary IDs must be odd.
 
Triangulation< dim > triangulation
 The mesh.
 
const FE_Nedelec< dim > fe
 The finite elements.
 
DoFHandler< dim > dof_handler
 The dof handler.
 
Vector< double > solution
 The solution vector, that is, 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\) norm.
 
double Linfty_norm
 The \(L^{\infty}\) norm.
 

Detailed Description

Implements the solver of the Current vector potential (cvp-i/) numerical experiment.

Definition at line 42 of file solver.hpp.

Constructor & Destructor Documentation

◆ SolverCVPI()

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

The constructor.

Parameters
[in]p- The degree of the Nedelec finite elements.
[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 cvp-i/gmsh/build. This parameter is used to compose the name of the mesh file to be uploaded from cvp-i/gmsh/data/.
[in]fname- The name of the vtu file without extension to save the data.

Definition at line 62 of file solver.hpp.


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