| 
    HArD::Core2D
    
   Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns 
   | 
 
Hybrid Mimetic Mixed method. More...
Classes | |
| class | HArDCore2D::HMM_StefanPME_Transient | 
| 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... | |
| class | HArDCore2D::StochStefanPME | 
| The vector Xh manipulated in the resolution has mixed components, corresponding either to the unknown \(u\) or to \(\zeta(e^W 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(e^W u)\). Otherwise, they represent u.  More... | |
Typedefs | |
| using | HArDCore2D::HMM_StefanPME_Transient::solution_function_type = std::function< double(const double &, const VectorRd &)> | 
| type for solution   | |
| using | HArDCore2D::HMM_StefanPME_Transient::source_function_type = std::function< double(const double &, const VectorRd &, const Cell *)> | 
| type for source   | |
| using | HArDCore2D::HMM_StefanPME_Transient::grad_function_type = std::function< VectorRd(const double &, const VectorRd &, const Cell *)> | 
| type for gradient   | |
| using | HArDCore2D::HMM_StefanPME_Transient::tensor_function_type = std::function< Eigen::Matrix2d(const double, const double, const Cell *)> | 
| type for diffusion tensor (does not depend on time)   | |
| template<typename T > | |
| using | HArDCore2D::SpatialFunctionType = std::function< T(const VectorRd &)> | 
| Generic type for function that only depends on spatial coordinate.   | |
| template<typename T > | |
| using | HArDCore2D::PiecewiseSpatialFunctionType = std::function< T(const VectorRd &, const Cell *)> | 
| Generic type for function that depends on space, with formula changing from one cell to the next.   | |
| template<typename T > | |
| using | HArDCore2D::TemporalSpatialFunctionType = std::function< T(const double &, const VectorRd &)> | 
| Generic type for function that depends on space and time.   | |
| template<typename T > | |
| using | HArDCore2D::PiecewiseTemporalSpatialFunctionType = std::function< T(const double &, const VectorRd &, const Cell *)> | 
| Generic type for function that depends on space and time, with formula changing from one cell to the next.   | |
| template<typename T > | |
| using | HArDCore2D::EigFunctionType = std::function< T(const size_t &, const size_t &, const VectorRd &)> | 
| Type for "eigenfunctions" e_i, depending on two indices k,l.   | |
| template<typename T > | |
| using | HArDCore2D::DoubleVector = std::vector< std::vector< T > > | 
| using | HArDCore2D::StochStefanPME::solution_function_type = TemporalSpatialFunctionType< double > | 
| type for solution   | |
| using | HArDCore2D::StochStefanPME::source_function_type = PiecewiseSpatialFunctionType< double > | 
| type for source (at a given fixed time)   | |
| using | HArDCore2D::StochStefanPME::grad_function_type = PiecewiseTemporalSpatialFunctionType< VectorRd > | 
| type for gradient   | |
| using | HArDCore2D::StochStefanPME::lapl_function_type = PiecewiseTemporalSpatialFunctionType< double > | 
| type for laplacian   | |
| using | HArDCore2D::StochStefanPME::tensor_function_type = PiecewiseSpatialFunctionType< Eigen::Matrix2d > | 
| type for diffusion tensor (does not depend on time)   | |
| using | HArDCore2D::StochStefanPME::WienerType = SpatialFunctionType< double > | 
| type for the Wiener process at a fixed time (only variation in space)   | |
| using | HArDCore2D::StochStefanPME::GradWienerType = SpatialFunctionType< VectorRd > | 
| type for gradient of Wiener process   | |
| using | HArDCore2D::StochStefanPME::ReactionType = SpatialFunctionType< double > | 
| Type for reaction term mu^2.   | |
Functions | |
| HArDCore2D::HMM_StefanPME_Transient::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.   | |
| UVector | HArDCore2D::HMM_StefanPME_Transient::iterate (const double tps, const double dt, const UVector &Xn) | 
| Execute one time iteration.   | |
| Eigen::VectorXd | HArDCore2D::HMM_StefanPME_Transient::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) )   | |
| UVector | HArDCore2D::HMM_StefanPME_Transient::apply_nonlinearity (const UVector &Y, const std::string type) const | 
| double | HArDCore2D::HMM_StefanPME_Transient::L2_MassLumped (const UVector &Xh) const | 
| Mass-lumped L2 norm of a function given by a vector.   | |
| double | HArDCore2D::HMM_StefanPME_Transient::Lp_MassLumped (const UVector &Xh, double p) const | 
| Mass-lumped Lp norm of a function given by a vector.   | |
| double | HArDCore2D::HMM_StefanPME_Transient::EnergyNorm (const UVector &Xh) const | 
| Discrete energy norm (associated to the diffusion operator)   | |
| double | HArDCore2D::HMM_StefanPME_Transient::get_assembly_time () const | 
| cpu time to assemble the scheme   | |
| double | HArDCore2D::HMM_StefanPME_Transient::get_solving_time () const | 
| cpu time to solve the scheme   | |
| double | HArDCore2D::HMM_StefanPME_Transient::get_itime (size_t idx) const | 
| various intermediate assembly times   | |
| double | HArDCore2D::HMM_StefanPME_Transient::get_solving_error () const | 
| residual after solving the scheme   | |
| size_t | HArDCore2D::HMM_StefanPME_Transient::get_nb_newton () const | 
| number of Newton iterations   | |
| Eigen::MatrixXd | HArDCore2D::HMM_StefanPME_Transient::get_MassT (size_t iT) const | 
| Mass matrix in cell iT.   | |
| static double | HArDCore2D::StDev (const Eigen::VectorXd &v) | 
| HArDCore2D::StochStefanPME::StochStefanPME (HybridCore &hmm, tensor_function_type kappa, TestCaseNonLinearity::nonlinearity_function_type zeta, BoundaryConditions BC, solution_function_type exact_solution, grad_function_type grad_exact_solution, solution_function_type time_der_exact_solution, lapl_function_type minus_Lapl_exact_solution, double weight, std::string solver_type, std::ostream &output=std::cout) | |
| Constructor of the class.   | |
| StochStefanPME::source_function_type | HArDCore2D::StochStefanPME::compute_source (const bool &use_exact_source, const double &t, const WienerType &W, const GradWienerType &grad_W, const WienerType &Delta_exp_W, const ReactionType &mu_squared) | 
| Compute the source to zero or the exact one based on the selected solution and Wiener process.   | |
| std::pair< UVector, size_t > | HArDCore2D::StochStefanPME::iterate (const double tps, const double dt, const UVector &Xn, const UVector &Ih_W, const WienerType &W, const ReactionType &mu_squared, const source_function_type &source) | 
| Execute one time iteration: return the calculated vector, and the number of Newton iterations.   | |
| void | HArDCore2D::StochStefanPME::SetWienerProcess (const int &caseW, const double &t, WienerType &W, UVector &I_W, GradWienerType &grad_W, WienerType &Delta_exp_W, ReactionType &mu_squared, bool verbose=false) | 
| Set the Wiener process, deterministic case.   | |
| void | HArDCore2D::StochStefanPME::SimulateWienerProcess (const double &dt, DoubleVector< double > &Wtime, WienerType &W, const DoubleVector< Eigen::VectorXd > &Ih_eigs, UVector &I_W, GradWienerType &grad_W, WienerType &Delta_exp_W, ReactionType &mu_squared) | 
| Set the Wiener process, random case.   | |
| Eigen::VectorXd | HArDCore2D::StochStefanPME::apply_nonlinearity_eW (const std::string type, const Eigen::VectorXd &Y, const Eigen::VectorXd &I_W) const | 
| Compute non-linearity and e^W on vector Y (depends if weight=0, weight=1 or weight\in (0,1) )   | |
| UVector | HArDCore2D::StochStefanPME::apply_nonlinearity_eW (const std::string type, const UVector &Y, const Eigen::VectorXd &I_W) const | 
| double | HArDCore2D::StochStefanPME::L2_MassLumped (const UVector &Xh) const | 
| Mass-lumped L2 norm of a function given by a vector.   | |
| double | HArDCore2D::StochStefanPME::Lp_MassLumped (const UVector &Xh, double p) const | 
| Mass-lumped Lp norm of a function given by a vector.   | |
| double | HArDCore2D::StochStefanPME::EnergyNorm (const UVector &Xh) const | 
| Discrete energy norm (associated to the diffusion operator)   | |
| double | HArDCore2D::StochStefanPME::Integral (const UVector &Xh) const | 
| Integral of a function given by a vector.   | |
| double | HArDCore2D::StochStefanPME::get_assembly_time () const | 
| cpu time to assemble the scheme   | |
| double | HArDCore2D::StochStefanPME::get_solution_time () const | 
| cpu time to solve the linear systems   | |
| double | HArDCore2D::StochStefanPME::get_itime (size_t idx) const | 
| various intermediate assembly times   | |
| double | HArDCore2D::StochStefanPME::get_solving_error () const | 
| residual after solving the scheme   | |
| Eigen::MatrixXd | HArDCore2D::StochStefanPME::get_MassT (size_t iT) const | 
| Mass matrix in cell iT.   | |
Variables | |
| static SpatialFunctionType< double > | HArDCore2D::zero_scalar_function = [](const VectorRd & x)->double { return 0.;} | 
| Zero spatial function.   | |
| static const double | HArDCore2D::PI = boost::math::constants::pi<double>() | 
| Type for vector of vector.   | |
| static std::function< double(const size_t &, const size_t &)> | HArDCore2D::mui | 
| static EigFunctionType< double > | HArDCore2D::mui_ei | 
| static EigFunctionType< VectorRd > | HArDCore2D::grad_mui_ei | 
| static EigFunctionType< double > | HArDCore2D::Delta_mui_ei | 
Hybrid Mimetic Mixed method.
| using HArDCore2D::DoubleVector = typedef std::vector<std::vector<T> > | 
| using HArDCore2D::EigFunctionType = typedef std::function<T(const size_t&, const size_t&, const VectorRd&)> | 
Type for "eigenfunctions" e_i, depending on two indices k,l.
| using HArDCore2D::HMM_StefanPME_Transient::grad_function_type = std::function<VectorRd(const double&, const VectorRd&, const Cell*)> | 
type for gradient
| using HArDCore2D::StochStefanPME::grad_function_type = PiecewiseTemporalSpatialFunctionType<VectorRd> | 
type for gradient
type for gradient of Wiener process
type for laplacian
| using HArDCore2D::PiecewiseSpatialFunctionType = typedef std::function<T(const VectorRd&, const Cell*)> | 
Generic type for function that depends on space, with formula changing from one cell to the next.
| using HArDCore2D::PiecewiseTemporalSpatialFunctionType = typedef std::function<T(const double&, const VectorRd&, const Cell*)> | 
Generic type for function that depends on space and time, with formula changing from one cell to the next.
| using HArDCore2D::StochStefanPME::ReactionType = SpatialFunctionType<double> | 
Type for reaction term mu^2.
| using HArDCore2D::HMM_StefanPME_Transient::solution_function_type = std::function<double(const double&, const VectorRd&)> | 
type for solution
type for solution
| using HArDCore2D::HMM_StefanPME_Transient::source_function_type = std::function<double(const double&, const VectorRd&, const Cell*)> | 
type for source
type for source (at a given fixed time)
| using HArDCore2D::SpatialFunctionType = typedef std::function<T(const VectorRd&)> | 
Generic type for function that only depends on spatial coordinate.
| using HArDCore2D::TemporalSpatialFunctionType = typedef std::function<T(const double&, const VectorRd&)> | 
Generic type for function that depends on space and time.
| using HArDCore2D::HMM_StefanPME_Transient::tensor_function_type = std::function<Eigen::Matrix2d(const double, const double, const Cell*)> | 
type for diffusion tensor (does not depend on time)
| using HArDCore2D::StochStefanPME::tensor_function_type = PiecewiseSpatialFunctionType<Eigen::Matrix2d> | 
type for diffusion tensor (does not depend on time)
| using HArDCore2D::StochStefanPME::WienerType = SpatialFunctionType<double> | 
type for the Wiener process at a fixed time (only variation in space)
| Eigen::VectorXd HArDCore2D::HMM_StefanPME_Transient::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) )
| UVector HArDCore2D::HMM_StefanPME_Transient::apply_nonlinearity | ( | const UVector & | Y, | 
| const std::string | type | ||
| ) | const | 
| Eigen::VectorXd HArDCore2D::StochStefanPME::apply_nonlinearity_eW | ( | const std::string | type, | 
| const Eigen::VectorXd & | Y, | ||
| const Eigen::VectorXd & | I_W | ||
| ) | const | 
Compute non-linearity and e^W on vector Y (depends if weight=0, weight=1 or weight\in (0,1) )
| UVector HArDCore2D::StochStefanPME::apply_nonlinearity_eW | ( | const std::string | type, | 
| const UVector & | Y, | ||
| const Eigen::VectorXd & | I_W | ||
| ) | const | 
| StochStefanPME::source_function_type HArDCore2D::StochStefanPME::compute_source | ( | const bool & | use_exact_source, | 
| const double & | t, | ||
| const WienerType & | W, | ||
| const GradWienerType & | grad_W, | ||
| const WienerType & | Delta_exp_W, | ||
| const ReactionType & | mu_squared | ||
| ) | 
Compute the source to zero or the exact one based on the selected solution and Wiener process.
| use_exact_source | use exact source or zero | 
| t | Time at which to compute the source term | 
| W | Wiener process | 
| grad_W | Gradient of Wiener process | 
| Delta_exp_W | Laplacian of exponential of Wiener process | 
| mu_squared | mu^2 for the reaction term | 
| double HArDCore2D::HMM_StefanPME_Transient::EnergyNorm | ( | const UVector & | Xh | ) | const | 
Discrete energy norm (associated to the diffusion operator)
| double HArDCore2D::StochStefanPME::EnergyNorm | ( | const UVector & | Xh | ) | const | 
Discrete energy norm (associated to the diffusion operator)
      
  | 
  inline | 
cpu time to assemble the scheme
      
  | 
  inline | 
cpu time to assemble the scheme
      
  | 
  inline | 
various intermediate assembly times
      
  | 
  inline | 
various intermediate assembly times
      
  | 
  inline | 
Mass matrix in cell iT.
      
  | 
  inline | 
Mass matrix in cell iT.
      
  | 
  inline | 
number of Newton iterations
      
  | 
  inline | 
cpu time to solve the linear systems
      
  | 
  inline | 
residual after solving the scheme
      
  | 
  inline | 
residual after solving the scheme
      
  | 
  inline | 
cpu time to solve the scheme
| HArDCore2D::HMM_StefanPME_Transient::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.
| hmm | instance of the hybridcore class (with basis functions, etc.) | 
| kappa | diffusion tensor | 
| source | source term | 
| BC | type of boundary conditions | 
| exact_solution | exact solution | 
| grad_exact_solution | gradient of the exact solution | 
| zeta | function describing the nonlinearity | 
| weight | proportion of weight (between 0 and 1) of mass-lumping on the edges | 
| solver_type | type of solver to use for the global system (bicgstab at the moment) | 
| output | optional argument for output of messages | 
| double HArDCore2D::StochStefanPME::Integral | ( | const UVector & | Xh | ) | const | 
Integral of a function given by a vector.
| UVector HArDCore2D::HMM_StefanPME_Transient::iterate | ( | const double | tps, | 
| const double | dt, | ||
| const UVector & | Xn | ||
| ) | 
Execute one time iteration.
| tps | current time (for computing source) | 
| dt | time step | 
| Xn | Unkown at previous time step | 
| std::pair< UVector, size_t > HArDCore2D::StochStefanPME::iterate | ( | const double | tps, | 
| const double | dt, | ||
| const UVector & | Xn, | ||
| const UVector & | Ih_W, | ||
| const WienerType & | W, | ||
| const ReactionType & | mu_squared, | ||
| const source_function_type & | source | ||
| ) | 
Execute one time iteration: return the calculated vector, and the number of Newton iterations.
| tps | current time (for computing source) | 
| dt | time step | 
| Xn | Unkown at previous time step | 
| Ih_W | Interpolate of Wiener process at time tps | 
| W | Wiener process at time tps, to fix the BCs | 
| mu_squared | Reaction term | 
| source | source term at time tps | 
| double HArDCore2D::HMM_StefanPME_Transient::L2_MassLumped | ( | const UVector & | Xh | ) | const | 
Mass-lumped L2 norm of a function given by a vector.
| double HArDCore2D::StochStefanPME::L2_MassLumped | ( | const UVector & | Xh | ) | const | 
Mass-lumped L2 norm of a function given by a vector.
| double HArDCore2D::HMM_StefanPME_Transient::Lp_MassLumped | ( | const UVector & | Xh, | 
| double | p | ||
| ) | const | 
Mass-lumped Lp norm of a function given by a vector.
| double HArDCore2D::StochStefanPME::Lp_MassLumped | ( | const UVector & | Xh, | 
| double | p | ||
| ) | const | 
Mass-lumped Lp norm of a function given by a vector.
| void HArDCore2D::StochStefanPME::SetWienerProcess | ( | const int & | caseW, | 
| const double & | t, | ||
| WienerType & | W, | ||
| UVector & | I_W, | ||
| GradWienerType & | grad_W, | ||
| WienerType & | Delta_exp_W, | ||
| ReactionType & | mu_squared, | ||
| bool | verbose = false  | 
        ||
| ) | 
Set the Wiener process, deterministic case.
| caseW | Type of Wiener process (can be deterministic...) | 
| t | Time at which to compute the Wiener process | 
| W | To store the Wiener process | 
| I_W | Interpolate of the calculated Wiener process | 
| grad_W | To store its gradient | 
| Delta_exp_W | To store the Laplacian of its exponential | 
| mu_squared | To store mu^2 | 
| verbose | Determine if text should be output | 
| void HArDCore2D::StochStefanPME::SimulateWienerProcess | ( | const double & | dt, | 
| DoubleVector< double > & | Wtime, | ||
| WienerType & | W, | ||
| const DoubleVector< Eigen::VectorXd > & | Ih_eigs, | ||
| UVector & | I_W, | ||
| GradWienerType & | grad_W, | ||
| WienerType & | Delta_exp_W, | ||
| ReactionType & | mu_squared | ||
| ) | 
Set the Wiener process, random case.
Simulate the Wiener process, by random increment of the temporal component from the current value.
| dt | Time increment to update the process | 
| Wtime | Current values of the time component W_i of W, will be updated | 
| W | Computed complete Wiener process | 
| Ih_eigs | Interpolates of the eigenfunctions e_i to compute the interpolate of the Wiener process | 
| I_W | To store the interpolate of the Wiener process | 
| grad_W | To store the gradient of the Wiener process | 
| Delta_exp_W | To store the Laplacian of the exponential of the Wiener process | 
| mu_squared | Reaction term mu^2 | 
      
  | 
  inlinestatic | 
| HArDCore2D::StochStefanPME::StochStefanPME | ( | HybridCore & | hmm, | 
| tensor_function_type | kappa, | ||
| TestCaseNonLinearity::nonlinearity_function_type | zeta, | ||
| BoundaryConditions | BC, | ||
| solution_function_type | exact_solution, | ||
| grad_function_type | grad_exact_solution, | ||
| solution_function_type | time_der_exact_solution, | ||
| lapl_function_type | minus_Lapl_exact_solution, | ||
| double | weight, | ||
| std::string | solver_type, | ||
| std::ostream & | output = std::cout  | 
        ||
| ) | 
Constructor of the class.
| hmm | instance of the hybridcore class (with basis functions, etc.) | 
| kappa | diffusion tensor | 
| zeta | function describing the nonlinearity | 
| BC | type of boundary conditions | 
| exact_solution | exact solution | 
| grad_exact_solution | gradient of the exact solution | 
| time_der_exact_solution | time derivative of exact solution | 
| minus_Lapl_exact_solution | minus Laplacian of the exact solution | 
| weight | proportion of weight (between 0 and 1) of mass-lumping on the edges | 
| solver_type | type of solver to use for the global system | 
| output | optional argument for output of messages | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
Type for vector of vector.
      
  | 
  static | 
Zero spatial function.