Logbook  (07-04-2025)
Static problems
StaticVectorSolver::FreeSurfaceCurrent< dim, stage > Class Template Reference

Implements the surface free-current density, \(\vec{K}_f\), on the right-hand side of the continuity condition (v) of the static vector boundary value problem. More...

#include <static_vector_input.hpp>

Inheritance diagram for StaticVectorSolver::FreeSurfaceCurrent< dim, stage >:
Collaboration diagram for StaticVectorSolver::FreeSurfaceCurrent< dim, stage >:

Public Member Functions

void value_list (const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, dim >> &values) const
 Computes values of the surface free-current density, \(\vec{K}_f\), on the right-hand side of the continuity condition at quadrature points. More...
 
void value_list (const std::vector< Point< 3 >> &r, const std::vector< Tensor< 1, 3 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 3 >> &values) const
 
void value_list (const std::vector< Point< 3 >> &r, const std::vector< Tensor< 1, 3 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 3 >> &values) const
 
void value_list (const std::vector< Point< 3 >> &r, const std::vector< Tensor< 1, 3 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 3 >> &values) const
 
void value_list (const std::vector< Point< 2 >> &r, const std::vector< Tensor< 1, 2 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 2 >> &values) const
 
void value_list (const std::vector< Point< 3 >> &r, const std::vector< Tensor< 1, 3 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 3 >> &values) const
 
void value_list (const std::vector< Point< 3 >> &r, const std::vector< Tensor< 1, 3 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 3 >> &values) const
 
void value_list (const std::vector< Point< 3 >> &r, const std::vector< Tensor< 1, 3 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 3 >> &values) const
 
void value_list (const std::vector< Point< 3 >> &r, const std::vector< Tensor< 1, 3 >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, 3 >> &values) const
 

Detailed Description

template<int dim, int stage = 1>
class StaticVectorSolver::FreeSurfaceCurrent< dim, stage >

Implements the surface free-current density, \(\vec{K}_f\), on the right-hand side of the continuity condition (v) of the static vector boundary value problem.

This class is declared in shared/include/static_vector_input.hpp but must be implemented in xyz/src/static_vector_input.cpp, where xyz is the directory of the current numerical experiment. That is, the declaration is shared between all numerical experiments while implementation is specific for each individual numerical experiment. See the structure of the code for more details.

The dim template parameter is, as per usual, the amount of spatial dimensions. The purpose of the stage template parameter is discussed in here.

The user is supposed to implement

void value_list(...)
void value_list(const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< Tensor< 1, dim >> &values) const
Computes values of the surface free-current density, , on the right-hand side of the continuity condi...

member function of this class.

Definition at line 397 of file static_vector_input.hpp.

Member Function Documentation

◆ value_list()

template<int dim, int stage = 1>
void StaticVectorSolver::FreeSurfaceCurrent< dim, stage >::value_list ( const std::vector< Point< dim >> &  r,
const std::vector< Tensor< 1, dim >> &  n,
types::material_id  mid,
unsigned int  cuid,
unsigned int  fuid,
std::vector< Tensor< 1, dim >> &  values 
) const

Computes values of the surface free-current density, \(\vec{K}_f\), on the right-hand side of the continuity condition at quadrature points.

This function is called by the StaticVectorSolver::Solver1 and StaticVectorSolver::Solver2 classes during the assembly of the system right-hand side. It is called ones per each face if both user IDs, the cell user ID and the face user ID, are greater than zero. This function must fill the vector values with the values of \(\vec{K}_f\). The values[i] is interpreted as \(\vec{K}_f\) at quadrature point r[i]. The code snippet below provides an example in which \(\vec{K}_f\) equals zero.

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
template<>
const std::vector<Point<3>>& r,
const std::vector<Tensor<1, 3>>& n,
types::material_id mid,
unsigned int cuid,
unsigned int fuid,
std::vector<Tensor<1,3>>& values) const
{
Assert(r.size() == values.size(),
ExcDimensionMismatch(r.size(), values.size()));
for (unsigned int i = 0 ; i < r.size(); i++)
{
values[i][0] = 0.0;
values[i][1] = 0.0;
values[i][2] = 0.0;
}
}
#pragma GCC diagnostic pop
Parameters
[in]r- A vector that contains the quadrature points of the cell being processed.
[in]n- A vector that contains the normal vectors at quadrature points.
[in]mid- The material ID.
[in]cuid- The cell user ID.
[in]fuid- The face user ID.
[out]values- The output data.

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