HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Classes | Functions
HHO_LocVarDiff

HHO scheme for diffusion equation -div(Diff grad u)=f, with Diff possibly varying in each cell. More...

Classes

class  HArDCore2D::HHO_LocVarDiff
 The HHO_LocVarDiff class provides tools to implement the HHO method for the diffusion problem. More...
 

Functions

 HArDCore2D::HHO_LocVarDiff::HHO_LocVarDiff (HybridCore &hho, size_t K, int L, CellFType< MatrixRd > kappa, size_t deg_kappa, CellFType< double > source, BoundaryConditions BC, FType< double > exact_solution, CellFType< VectorRd > grad_exact_solution, std::string solver_type, bool use_threads, std::ostream &output=std::cout)
 Constructor of the class. More...
 
void HArDCore2D::HHO_LocVarDiff::assemble (HybridCore &hho)
 Assemble and solve the scheme. More...
 
UVector HArDCore2D::HHO_LocVarDiff::solve (HybridCore &hho)
 
double HArDCore2D::HHO_LocVarDiff::EnergyNorm (HybridCore &hho, const UVector Xh)
 Discrete energy norm (associated to the diffusion operator) of an hybrid function. More...
 
Eigen::SparseMatrix< double > HArDCore2D::HHO_LocVarDiff::get_SysMat ()
 Return the (statically condensed) matrix system. More...
 
double HArDCore2D::HHO_LocVarDiff::get_assembly_time () const
 cpu time to assemble the scheme More...
 
double HArDCore2D::HHO_LocVarDiff::get_solving_time () const
 cpu time to solve the scheme More...
 
double HArDCore2D::HHO_LocVarDiff::get_solving_error () const
 residual after solving the scheme More...
 
double HArDCore2D::HHO_LocVarDiff::get_itime (size_t idx) const
 various intermediate assembly times More...
 
const size_t HArDCore2D::HHO_LocVarDiff::get_nlocal_cell_dofs ()
 Number of DOFs in each cell. More...
 
const size_t HArDCore2D::HHO_LocVarDiff::get_nlocal_edge_dofs ()
 Number of DOFs on each edge. More...
 
const size_t HArDCore2D::HHO_LocVarDiff::get_nhighorder_dofs ()
 Number of DOFs per cell for high-order (K+1) polynomials. More...
 
const size_t HArDCore2D::HHO_LocVarDiff::get_ntotal_cell_dofs ()
 Total number of cell DOFs over the entire mesh. More...
 
const size_t HArDCore2D::HHO_LocVarDiff::get_ntotal_edge_dofs ()
 Total number of edge DOFs over the entire mesh. More...
 
const size_t HArDCore2D::HHO_LocVarDiff::get_ndir_edge_dofs ()
 Total number of edge DOFs for Dirichlet edges. More...
 
const size_t HArDCore2D::HHO_LocVarDiff::get_ntotal_dofs ()
 Total number of degrees of freedom over the entire mesh. More...
 

Detailed Description

HHO scheme for diffusion equation -div(Diff grad u)=f, with Diff possibly varying in each cell.

Function Documentation

◆ assemble()

void HArDCore2D::HHO_LocVarDiff::assemble ( HybridCore hho)

Assemble and solve the scheme.

◆ EnergyNorm()

double HArDCore2D::HHO_LocVarDiff::EnergyNorm ( HybridCore hho,
const UVector  Xh 
)

Discrete energy norm (associated to the diffusion operator) of an hybrid function.

◆ get_assembly_time()

double HArDCore2D::HHO_LocVarDiff::get_assembly_time ( ) const
inline

cpu time to assemble the scheme

◆ get_itime()

double HArDCore2D::HHO_LocVarDiff::get_itime ( size_t  idx) const
inline

various intermediate assembly times

◆ get_ndir_edge_dofs()

const size_t HArDCore2D::HHO_LocVarDiff::get_ndir_edge_dofs ( )
inline

Total number of edge DOFs for Dirichlet edges.

◆ get_nhighorder_dofs()

const size_t HArDCore2D::HHO_LocVarDiff::get_nhighorder_dofs ( )
inline

Number of DOFs per cell for high-order (K+1) polynomials.

◆ get_nlocal_cell_dofs()

const size_t HArDCore2D::HHO_LocVarDiff::get_nlocal_cell_dofs ( )
inline

Number of DOFs in each cell.

◆ get_nlocal_edge_dofs()

const size_t HArDCore2D::HHO_LocVarDiff::get_nlocal_edge_dofs ( )
inline

Number of DOFs on each edge.

◆ get_ntotal_cell_dofs()

const size_t HArDCore2D::HHO_LocVarDiff::get_ntotal_cell_dofs ( )
inline

Total number of cell DOFs over the entire mesh.

◆ get_ntotal_dofs()

const size_t HArDCore2D::HHO_LocVarDiff::get_ntotal_dofs ( )
inline

Total number of degrees of freedom over the entire mesh.

◆ get_ntotal_edge_dofs()

const size_t HArDCore2D::HHO_LocVarDiff::get_ntotal_edge_dofs ( )
inline

Total number of edge DOFs over the entire mesh.

◆ get_solving_error()

double HArDCore2D::HHO_LocVarDiff::get_solving_error ( ) const
inline

residual after solving the scheme

◆ get_solving_time()

double HArDCore2D::HHO_LocVarDiff::get_solving_time ( ) const
inline

cpu time to solve the scheme

◆ get_SysMat()

Eigen::SparseMatrix<double> HArDCore2D::HHO_LocVarDiff::get_SysMat ( )
inline

Return the (statically condensed) matrix system.

◆ HHO_LocVarDiff()

HArDCore2D::HHO_LocVarDiff::HHO_LocVarDiff ( HybridCore hho,
size_t  K,
int  L,
CellFType< MatrixRd kappa,
size_t  deg_kappa,
CellFType< double >  source,
BoundaryConditions  BC,
FType< double >  exact_solution,
CellFType< VectorRd grad_exact_solution,
std::string  solver_type,
bool  use_threads,
std::ostream &  output = std::cout 
)

Constructor of the class.

Parameters
hhoreference to the mesh
Kdegree of polynomials on edges
Ldegree of polynomials in cells
kappadiffusion tensor
deg_kappapolynomial degree of the diffusion tensor
sourcesource term
BCtype of boundary conditions
exact_solutionexact solution
grad_exact_solutiongradient of the exact solution
solver_typetype of solver to use for the global system (bicgstab at the moment)
use_threadsoptional argument determining if local parallelisation is to be used
outputoptional argument for output of messages

◆ solve()

UVector HArDCore2D::HHO_LocVarDiff::solve ( HybridCore hho)