HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Loading...
Searching...
No Matches
Classes | Functions
HHO_MHD

Implementation of the HHO scheme for the MHD problem. More...

Classes

struct  SolutionVector
 
class  MHDModel
 
class  HArDCore3D::MHDTests
 

Functions

 SolutionVector::SolutionVector (Eigen::VectorXd values, const Mesh *mesh_ptr, const size_t cell_deg, const size_t face_deg)
 
Eigen::VectorXd SolutionVector::asVectorXd () const
 Return the values as an Eigen vector.
 
void SolutionVector::set_values (Eigen::VectorXd values) const
 Return the values as an Eigen vector.
 
const size_t SolutionVector::get_cell_deg () const
 Return the cell degree.
 
const size_t SolutionVector::get_face_deg () const
 Return the face degree.
 
Eigen::VectorXd SolutionVector::velocity_values () const
 
Eigen::VectorXd SolutionVector::pressure_values () const
 
Eigen::VectorXd SolutionVector::magnetic_values () const
 
Eigen::VectorXd SolutionVector::lagrange_values () const
 
Eigen::VectorXd SolutionVector::velocity_restr (size_t iT) const
 
Eigen::VectorXd SolutionVector::pressure_restr (size_t iT) const
 
Eigen::VectorXd SolutionVector::magnetic_restr (size_t iT) const
 
Eigen::VectorXd SolutionVector::lagrange_restr (size_t iT) const
 
Eigen::VectorXd SolutionVector::restr (size_t iT) const
 
SolutionVector SolutionVector::operator+ (const SolutionVector &b) const
 Overloads the addition: adds the coefficients.
 
SolutionVector SolutionVector::operator- (const SolutionVector &b) const
 Overloads the subtraction: subtracts the coefficients.
 
double SolutionVector::operator() (size_t index) const
 Overloads the (): returns the corresponding coefficient.
 
 MHDModel::MHDModel (HybridCore &, size_t, size_t, char, char)
 
SolutionVector MHDModel::solve_with_static_cond (FType< VectorRd > f_source, FType< VectorRd > g_source, double visc, double diff, double tol, LinearSolver< Eigen::SparseMatrix< double > > &solver, bool threading=true)
 
SolutionVector MHDModel::global_interpolant (FType< VectorRd > velocity, FType< double > pressure, FType< VectorRd > magnetic)
 
std::vector< doubleMHDModel::compute_errors (SolutionVector interpolant, SolutionVector discrete, double visc, double diff)
 
 HArDCore3D::MHDTests::MHDTests (size_t u_id, size_t b_id, size_t p_id, double visc, double diff)
 Initialise data.
 
FType< VectorRd > HArDCore3D::MHDTests::velocity ()
 
FType< MatrixRdHArDCore3D::MHDTests::grad_velocity ()
 
FType< VectorRd > HArDCore3D::MHDTests::laplace_velocity ()
 
FType< VectorRd > HArDCore3D::MHDTests::magnetic ()
 
FType< MatrixRdHArDCore3D::MHDTests::grad_magnetic ()
 
FType< VectorRd > HArDCore3D::MHDTests::laplace_magnetic ()
 
FType< VectorRd > HArDCore3D::MHDTests::u_dot_grad_u ()
 
FType< VectorRd > HArDCore3D::MHDTests::u_dot_grad_b ()
 
FType< VectorRd > HArDCore3D::MHDTests::b_dot_grad_u ()
 
FType< VectorRd > HArDCore3D::MHDTests::b_dot_grad_b ()
 
FType< doubleHArDCore3D::MHDTests::pressure ()
 
FType< VectorRd > HArDCore3D::MHDTests::grad_pressure ()
 
FType< VectorRd > HArDCore3D::MHDTests::magnetic_source ()
 
FType< VectorRd > HArDCore3D::MHDTests::velocity_source ()
 

Detailed Description

Implementation of the HHO scheme for the MHD problem.

Function Documentation

◆ asVectorXd()

Eigen::VectorXd SolutionVector::asVectorXd ( ) const
inline

Return the values as an Eigen vector.

◆ b_dot_grad_b()

FType< VectorRd > MHDTests::b_dot_grad_b ( )

◆ b_dot_grad_u()

FType< VectorRd > MHDTests::b_dot_grad_u ( )

◆ compute_errors()

std::vector< double > MHDModel::compute_errors ( SolutionVector  interpolant,
SolutionVector  discrete,
double  visc,
double  diff 
)

◆ get_cell_deg()

const size_t SolutionVector::get_cell_deg ( ) const
inline

Return the cell degree.

◆ get_face_deg()

const size_t SolutionVector::get_face_deg ( ) const
inline

Return the face degree.

◆ global_interpolant()

SolutionVector MHDModel::global_interpolant ( FType< VectorRd >  velocity,
FType< double pressure,
FType< VectorRd >  magnetic 
)

◆ grad_magnetic()

FType< MatrixRd > MHDTests::grad_magnetic ( )

◆ grad_pressure()

FType< VectorRd > MHDTests::grad_pressure ( )

◆ grad_velocity()

FType< MatrixRd > MHDTests::grad_velocity ( )

◆ lagrange_restr()

Eigen::VectorXd SolutionVector::lagrange_restr ( size_t  iT) const
inline

◆ lagrange_values()

Eigen::VectorXd SolutionVector::lagrange_values ( ) const
inline

◆ laplace_magnetic()

FType< VectorRd > MHDTests::laplace_magnetic ( )

◆ laplace_velocity()

FType< VectorRd > MHDTests::laplace_velocity ( )

◆ magnetic()

FType< VectorRd > MHDTests::magnetic ( )

◆ magnetic_restr()

Eigen::VectorXd SolutionVector::magnetic_restr ( size_t  iT) const
inline

◆ magnetic_source()

FType< VectorRd > MHDTests::magnetic_source ( )

◆ magnetic_values()

Eigen::VectorXd SolutionVector::magnetic_values ( ) const
inline

◆ MHDModel()

MHDModel::MHDModel ( HybridCore hho,
size_t  L,
size_t  K,
char  u_bc,
char  b_bc 
)

◆ MHDTests()

MHDTests::MHDTests ( size_t  u_id,
size_t  b_id,
size_t  p_id,
double  visc,
double  diff 
)

Initialise data.

Parameters
u_idThe id of the test case for the velocity
b_idThe id of the test case for the magnetic field
p_idThe id of the test case for the pressure
viscThe viscocity coefficient
diffThe magnetic diffusivity coefficient

◆ operator()()

double SolutionVector::operator() ( size_t  index) const
inline

Overloads the (): returns the corresponding coefficient.

◆ operator+()

SolutionVector SolutionVector::operator+ ( const SolutionVector b) const
inline

Overloads the addition: adds the coefficients.

◆ operator-()

SolutionVector SolutionVector::operator- ( const SolutionVector b) const
inline

Overloads the subtraction: subtracts the coefficients.

◆ pressure()

FType< double > MHDTests::pressure ( )

◆ pressure_restr()

Eigen::VectorXd SolutionVector::pressure_restr ( size_t  iT) const
inline

◆ pressure_values()

Eigen::VectorXd SolutionVector::pressure_values ( ) const
inline

◆ restr()

Eigen::VectorXd SolutionVector::restr ( size_t  iT) const
inline

◆ set_values()

void SolutionVector::set_values ( Eigen::VectorXd  values) const
inline

Return the values as an Eigen vector.

◆ SolutionVector()

SolutionVector::SolutionVector ( Eigen::VectorXd  values,
const Mesh mesh_ptr,
const size_t  cell_deg,
const size_t  face_deg 
)
inline
Parameters
valuesvalues of the vector
mesh_ptrreference to the mesh
cell_degpolynomial degrees in cell
face_degpolynomial degrees on face

◆ solve_with_static_cond()

SolutionVector MHDModel::solve_with_static_cond ( FType< VectorRd >  f_source,
FType< VectorRd >  g_source,
double  visc,
double  diff,
double  tol,
LinearSolver< Eigen::SparseMatrix< double > > &  solver,
bool  threading = true 
)

◆ u_dot_grad_b()

FType< VectorRd > MHDTests::u_dot_grad_b ( )

◆ u_dot_grad_u()

FType< VectorRd > MHDTests::u_dot_grad_u ( )

◆ velocity()

FType< VectorRd > MHDTests::velocity ( )

◆ velocity_restr()

Eigen::VectorXd SolutionVector::velocity_restr ( size_t  iT) const
inline

◆ velocity_source()

FType< VectorRd > MHDTests::velocity_source ( )

◆ velocity_values()

Eigen::VectorXd SolutionVector::velocity_values ( ) const
inline