| 
    HArD::Core2D
    
   Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns 
   | 
 
LEPNC scheme for diffusion equation \(\partial_t u - \div(K \nabla(\zeta(u))) = f\). More...
#include <LEPNC_StefanPME_transient.hpp>
Public Types | |
| using | solution_function_type = std::function< double(const double &, const VectorRd &)> | 
| type for solution   | |
| using | source_function_type = std::function< double(const double &, const VectorRd &, const Cell *)> | 
| type for source   | |
| using | grad_function_type = std::function< VectorRd(const double &, const VectorRd &, const Cell *)> | 
| type for gradient   | |
| using | tensor_function_type = std::function< Eigen::Matrix2d(const double, const double, const Cell *)> | 
| type for diffusion tensor (does not depend on time)   | |
Public Member Functions | |
| LEPNC_StefanPME_Transient (LEPNCCore &nc, tensor_function_type kappa, size_t deg_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.   | |
| Eigen::VectorXd | iterate (const double tps, const double dt, const Eigen::VectorXd Xn) | 
| Execute one time iteration.   | |
| 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) )   | |
| double | L2_MassLumped (const Eigen::VectorXd Xh) const | 
| Mass-lumped L2 norm of a function given by a vector.   | |
| double | Lp_MassLumped (const Eigen::VectorXd Xh, double p) const | 
| Mass-lumped Lp norm of a function given by a vector.   | |
| double | EnergyNorm (const Eigen::VectorXd Xh) const | 
| Discrete energy norm (associated to the diffusion operator)   | |
| double | get_assembly_time () const | 
| cpu time to assemble the scheme   | |
| double | get_solving_time () const | 
| cpu time to solve the scheme   | |
| double | get_itime (size_t idx) const | 
| various intermediate assembly times   | |
| double | get_solving_error () const | 
| residual after solving the scheme   | |
| size_t | get_nb_newton () const | 
| number of Newton iterations   | |
| Eigen::MatrixXd | get_MassT (size_t iT) const | 
| Mass matrix in cell iT.   | |
LEPNC scheme for diffusion equation \(\partial_t u - \div(K \nabla(\zeta(u))) = f\).
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.