HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Functions | |
template<TensorRankE Rank> | |
std::vector< std::pair< double, double > > | compute_hho_component_norms (const DiscreteSpace &Vh, const std::vector< Eigen::VectorXd > &vh, bool use_threads=true) |
template<TensorRankE Rank> | |
std::vector< std::pair< double, double > > | compute_hho_potential_norms (const DiscreteSpace &Vh, const std::vector< Eigen::MatrixXd > &potential, const std::vector< Eigen::MatrixXd > &stabilization, const std::vector< Eigen::VectorXd > &vh, bool use_threads=true) |
template<typename CellDofsMapType , typename EdgeDofsMapType > | |
std::vector< double > | compute_l2_dof_norms (const DiscreteSpace &Vh, const CellDofsMapType &cell_dofs_map, const EdgeDofsMapType &edge_dofs_map, const std::vector< Eigen::VectorXd > &vh, bool use_threads=true) |
Compute L2 component norms for spaces with generic cell and edge DOFs. | |
DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor | make_dof (const std::string name, size_t degree) |
bool | compare_degrees (const DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor &P1, const DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor &P2) |
template<TensorRankE Rank, typename F > | |
Eigen::VectorXd | hho_interpolate (const DiscreteSpace &Vh, const F &v, const InterpolateParameters ¶meters={}) |
std::map< std::string, double > | compute_discrete_errors (const HYPRE *scheme, const Eigen::VectorXd &uph, const Eigen::VectorXd &upI, const double &viscosity, const ComputeErrorsParameters ¶meters={}) |
std::map< std::string, double > | compute_errors (const HYPRE *scheme, const HArDCore2D::NavierStokesSolutions::IExactSolution *isolution, const Eigen::VectorXd &uh, const Eigen::VectorXd &ph, const ComputeErrorsParameters ¶meters={}) |
Compute errors between the discrete solution and the continuous one. | |
std::map< std::string, double > | compute_l2_dof_errors (const HYPRE *scheme, const Eigen::VectorXd &uph, const Eigen::VectorXd &upI, const ComputeErrorsParameters ¶meters) |
Compute the errors on DOFs. | |
std::map< std::string, double > | compute_energy_errors (const HYPRE *scheme, const HArDCore2D::NavierStokesSolutions::IExactSolution *isolution, const Eigen::VectorXd &uph, const Eigen::VectorXd &upI, const double &viscosity, const double ¤t_time, const ComputeErrorsParameters ¶meters={}) |
std::map< std::string, double > | compute_energy_errors (const HYPRE *scheme, const HArDCore2D::NavierStokesSolutions::IExactSolution *isolution, const Eigen::VectorXd &uph_half, const Eigen::VectorXd &upI_half, const Eigen::VectorXd &uph, const Eigen::VectorXd &upI, const double &viscosity, const double ¤t_time, const double &time_step, const ComputeErrorsParameters ¶meters={}) |
std::map< std::string, double > | compute_discrete_errors (const HYPRE *scheme, const Eigen::VectorXd &uph, const Eigen::VectorXd &upI, const Eigen::VectorXd &brh, const Eigen::VectorXd &brI, const double &viscosity, const double &magnetic_diffusivity, const ComputeErrorsParameters ¶meters={}) |
std::map< std::string, double > | compute_errors (const HYPRE *scheme, const HArDCore2D::NavierStokesSolutions::IExactSolution *isolution, const Eigen::VectorXd &uh, const Eigen::VectorXd &ph, const Eigen::VectorXd &bh, const Eigen::VectorXd &rh, const ComputeErrorsParameters ¶meters={}) |
Compute errors between the discrete solution and the continuous one. | |
std::map< std::string, double > | compute_l2_dof_errors (const HYPRE *scheme, const Eigen::VectorXd &uph, const Eigen::VectorXd &upI, const Eigen::VectorXd &brh, const Eigen::VectorXd &brI, const ComputeErrorsParameters ¶meters) |
Compute the errors on DOFs. | |
typedef Family< GradientBasis< ShiftedBasis< MonomialScalarBasisCell > > > HArDCore2D::DSL::GolyCellType |
typedef boost::fusion::vector< PolyCellType, PolyEdgeType, PolynCellType, PolynxnCellType, PolynEdgeType, RolyCellType, RolyComplCellType, GolyCellType, GolyComplCellType, RealVertexType, RealnVertexType, RealnxnVertexType > HArDCore2D::DSL::LocalPolynomialSpaces |
typedef TensorizedVectorFamily< Family< MonomialScalarBasisEdge >, dimspace > HArDCore2D::DSL::PolynEdgeType |
typedef double HArDCore2D::DSL::RealVertexType |
typedef Family< CurlBasis< ShiftedBasis< MonomialScalarBasisCell > > > HArDCore2D::DSL::RolyCellType |
typedef TensorizedVectorFamily<PolyCellType, static_cast<size_t>(dimspace+1)> HArDCore2D::DSL::SymPolynxnCellType |
bool HArDCore2D::DSL::compare_degrees | ( | const DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor & | P1, |
const DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor & | P2 | ||
) |
std::map< std::string, double > HArDCore2D::DSL::compute_discrete_errors | ( | const HYPRE * | scheme, |
const Eigen::VectorXd & | uph, | ||
const Eigen::VectorXd & | upI, | ||
const double & | viscosity, | ||
const ComputeErrorsParameters & | parameters = {} |
||
) |
Compute errors between the discrete solution and the interpolate of the continuous one using the component norm and/or the potential norm, depending on which one is computable
std::map< std::string, double > HArDCore2D::DSL::compute_discrete_errors | ( | const HYPRE * | scheme, |
const Eigen::VectorXd & | uph, | ||
const Eigen::VectorXd & | upI, | ||
const Eigen::VectorXd & | brh, | ||
const Eigen::VectorXd & | brI, | ||
const double & | viscosity, | ||
const double & | magnetic_diffusivity, | ||
const ComputeErrorsParameters & | parameters = {} |
||
) |
Compute errors between the discrete solution and the interpolate of the continuous one using the component norm and/or the potential norm, depending on which one is computable
std::map< std::string, double > HArDCore2D::DSL::compute_energy_errors | ( | const HYPRE * | scheme, |
const HArDCore2D::NavierStokesSolutions::IExactSolution * | isolution, | ||
const Eigen::VectorXd & | uph, | ||
const Eigen::VectorXd & | upI, | ||
const double & | viscosity, | ||
const double & | current_time, | ||
const ComputeErrorsParameters & | parameters = {} |
||
) |
Compute errors between the discrete solution and the interpolate of the continuous one using norms and seminorms appearing in the definition of the energy norm
std::map< std::string, double > HArDCore2D::DSL::compute_energy_errors | ( | const HYPRE * | scheme, |
const HArDCore2D::NavierStokesSolutions::IExactSolution * | isolution, | ||
const Eigen::VectorXd & | uph_half, | ||
const Eigen::VectorXd & | upI_half, | ||
const Eigen::VectorXd & | uph, | ||
const Eigen::VectorXd & | upI, | ||
const double & | viscosity, | ||
const double & | current_time, | ||
const double & | time_step, | ||
const ComputeErrorsParameters & | parameters = {} |
||
) |
Compute errors between the discrete solution and the interpolate of the continuous one using norms and seminorms appearing in the definition of the energy norm This version is geared towards a Crank-Nicolson time stepping: it takes the approximate and exact solutions at two time steps, to compute the L2 norm at integer time steps and the viscosity/advection norms at half-time steps.
Compute errors between the discrete solution and the interpolate of the continuous one using norms and seminorms appearing in the definition of the energy norm
uph | approximate solution at time t^{n+1/2} |
upI | interpolate of exact solution at time t^{n+1/2} |
brh | approximate solution at time t^{n+1} |
brI | interpolate of exact solution at time t^{n+1} |
std::map< std::string, double > HArDCore2D::DSL::compute_errors | ( | const HYPRE * | scheme, |
const HArDCore2D::NavierStokesSolutions::IExactSolution * | isolution, | ||
const Eigen::VectorXd & | uh, | ||
const Eigen::VectorXd & | ph, | ||
const ComputeErrorsParameters & | parameters = {} |
||
) |
Compute errors between the discrete solution and the continuous one.
std::map< std::string, double > HArDCore2D::DSL::compute_errors | ( | const HYPRE * | scheme, |
const HArDCore2D::NavierStokesSolutions::IExactSolution * | isolution, | ||
const Eigen::VectorXd & | uh, | ||
const Eigen::VectorXd & | ph, | ||
const Eigen::VectorXd & | bh, | ||
const Eigen::VectorXd & | rh, | ||
const ComputeErrorsParameters & | parameters = {} |
||
) |
Compute errors between the discrete solution and the continuous one.
std::vector< std::pair< double, double > > HArDCore2D::DSL::compute_hho_component_norms | ( | const DiscreteSpace & | Vh, |
const std::vector< Eigen::VectorXd > & | vh, | ||
bool | use_threads = true |
||
) |
std::vector< std::pair< double, double > > HArDCore2D::DSL::compute_hho_potential_norms | ( | const DiscreteSpace & | Vh, |
const std::vector< Eigen::MatrixXd > & | potential, | ||
const std::vector< Eigen::MatrixXd > & | stabilization, | ||
const std::vector< Eigen::VectorXd > & | vh, | ||
bool | use_threads = true |
||
) |
std::map< std::string, double > HArDCore2D::DSL::compute_l2_dof_errors | ( | const HYPRE * | scheme, |
const Eigen::VectorXd & | uph, | ||
const Eigen::VectorXd & | upI, | ||
const ComputeErrorsParameters & | parameters | ||
) |
Compute the errors on DOFs.
std::map< std::string, double > HArDCore2D::DSL::compute_l2_dof_errors | ( | const HYPRE * | scheme, |
const Eigen::VectorXd & | uph, | ||
const Eigen::VectorXd & | upI, | ||
const Eigen::VectorXd & | brh, | ||
const Eigen::VectorXd & | brI, | ||
const ComputeErrorsParameters & | parameters | ||
) |
Compute the errors on DOFs.
std::vector< double > HArDCore2D::DSL::compute_l2_dof_norms | ( | const DiscreteSpace & | Vh, |
const CellDofsMapType & | cell_dofs_map, | ||
const EdgeDofsMapType & | edge_dofs_map, | ||
const std::vector< Eigen::VectorXd > & | vh, | ||
bool | use_threads = true |
||
) |
Compute L2 component norms for spaces with generic cell and edge DOFs.
Eigen::VectorXd HArDCore2D::DSL::hho_interpolate | ( | const DiscreteSpace & | Vh, |
const F & | v, | ||
const InterpolateParameters & | parameters = {} |
||
) |
DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor HArDCore2D::DSL::make_dof | ( | const std::string | name, |
size_t | degree | ||
) |