HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Public Types | Public Member Functions | List of all members
HArDCore2D::HMM_StefanPME_Transient Class Reference

The vector Xh manipulated in the resolution has mixed components, corresponding either to the unknown u or to \(\zeta(u)\), depending on the choice of weight of mass-lumping for the cell/edge unknowns. If no weight is put on the edges (resp. the cells), then the edge (resp. cell) unknowns represent \(\zeta(u)\). Otherwise, they represent u. More...

#include <HMM_StefanPME_transient.hpp>

Public Types

using solution_function_type = std::function< double(const double &, const VectorRd &)>
 type for solution More...
 
using source_function_type = std::function< double(const double &, const VectorRd &, const Cell *)>
 type for source More...
 
using grad_function_type = std::function< VectorRd(const double &, const VectorRd &, const Cell *)>
 type for gradient More...
 
using tensor_function_type = std::function< Eigen::Matrix2d(const double, const double, const Cell *)>
 type for diffusion tensor (does not depend on time) More...
 

Public Member Functions

 HMM_StefanPME_Transient (HybridCore &hmm, tensor_function_type kappa, source_function_type source, BoundaryConditions BC, solution_function_type exact_solution, grad_function_type grad_exact_solution, TestCaseNonLinearity::nonlinearity_function_type zeta, double weight, std::string solver_type, std::ostream &output=std::cout)
 Constructor of the class. More...
 
UVector iterate (const double tps, const double dt, const UVector &Xn)
 Execute one time iteration. More...
 
Eigen::VectorXd apply_nonlinearity (const Eigen::VectorXd &Y, const std::string type) const
 Compute non-linearity on vector (depends if weight=0, weight=1 or weight\in (0,1) ) More...
 
UVector apply_nonlinearity (const UVector &Y, const std::string type) const
 
double L2_MassLumped (const UVector &Xh) const
 Mass-lumped L2 norm of a function given by a vector. More...
 
double Lp_MassLumped (const UVector &Xh, double p) const
 Mass-lumped Lp norm of a function given by a vector. More...
 
double EnergyNorm (const UVector &Xh) const
 Discrete energy norm (associated to the diffusion operator) More...
 
double get_assembly_time () const
 cpu time to assemble the scheme More...
 
double get_solving_time () const
 cpu time to solve the scheme More...
 
double get_itime (size_t idx) const
 various intermediate assembly times More...
 
double get_solving_error () const
 residual after solving the scheme More...
 
size_t get_nb_newton () const
 number of Newton iterations More...
 
Eigen::MatrixXd get_MassT (size_t iT) const
 Mass matrix in cell iT. More...
 

Detailed Description

The vector Xh manipulated in the resolution has mixed components, corresponding either to the unknown u or to \(\zeta(u)\), depending on the choice of weight of mass-lumping for the cell/edge unknowns. If no weight is put on the edges (resp. the cells), then the edge (resp. cell) unknowns represent \(\zeta(u)\). Otherwise, they represent u.


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