12#ifndef MFEM_DIST_SOLVER_HPP
13#define MFEM_DIST_SOLVER_HPP
110 : maxp(maxp_), newton_iter(newton_iter_),
111 newton_rel_tol(rtol), newton_abs_tol(atol) { }
120 const int newton_iter;
121 const real_t newton_rel_tol, newton_abs_tol;
154 : basef(basec_), corrf(corrc_) { }
161 if (
u<0.0) {
u*=-1.0; }
181 real_t rd=rh/(2*std::sqrt(3.0));
191 const Vector &elfun)
override;
220 bool ownership_=
true)
237 const Vector &elfun)
override;
257 int maxiter = 100,
real_t rtol = 1e-12,
258 real_t atol = 1e-15,
int print_lv = 0)
260 fecp(order, mesh.Dimension()),
261 fesp(&mesh, &fecp, 1),
Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormI...
virtual real_t Eval(ElementTransformation &T, const IntegrationPoint &ip)=0
Evaluate the coefficient in the element described by T at the point ip.
Data type dense matrix using column-major storage.
Abstract class for all finite elements.
Coefficient defined by a GridFunction. This coefficient is mesh dependent.
Class for grid function - Vector with associated FE space.
Arbitrary order H1-conforming (continuous) finite elements.
The BoomerAMG solver in hypre.
void SetPrintLevel(int print_level)
Wrapper for hypre's parallel vector class.
Class for integration point with weight.
void SetRelTol(real_t rtol)
virtual void SetPreconditioner(Solver &pr)
This should be called before SetOperator.
virtual void SetPrintLevel(int print_lvl)
Legacy method to set the level of verbosity of the solver output.
void SetMaxIter(int max_it)
void SetAbsTol(real_t atol)
Abstract parallel finite element space.
HypreParVector * NewTrueDofVector()
Class for parallel grid function.
Class for parallel meshes.
Base class for vector Coefficients that optionally depend on time and space.
virtual void Eval(Vector &V, ElementTransformation &T, const IntegrationPoint &ip)=0
Evaluate the vector coefficient in the element described by T at the point ip, storing the result in ...
real_t Norml2() const
Returns the l2 norm of the vector.
IterativeSolver::PrintLevel print_level
virtual void ComputeScalarDistance(Coefficient &zero_level_set, ParGridFunction &distance)=0
virtual ~DistanceSolver()
void ScalarDistToVector(ParGridFunction &dist_s, ParGridFunction &dist_v)
virtual void ComputeVectorDistance(Coefficient &zero_level_set, ParGridFunction &distance)
HeatDistanceSolver(real_t diff_coeff)
void ComputeScalarDistance(Coefficient &zero_level_set, ParGridFunction &distance)
void ComputeScalarDistance(Coefficient &u_coeff, ParGridFunction &dist)
NormalizationDistanceSolver()
NormalizedGradCoefficient(const GridFunction &u_gf, int dim)
void Eval(Vector &V, ElementTransformation &T, const IntegrationPoint &ip)
Evaluate the vector coefficient in the element described by T at the point ip, storing the result in ...
void Filter(ParGridFunction &func, ParGridFunction &ffield)
PDEFilter(ParMesh &mesh, real_t rh, int order=2, int maxiter=100, real_t rtol=1e-12, real_t atol=1e-15, int print_lv=0)
void SetMaxPower(int new_pp)
void ComputeScalarDistance(Coefficient &func, ParGridFunction &fdist)
PLapDistanceSolver(int maxp_=30, int newton_iter_=10, real_t rtol=1e-7, real_t atol=1e-12)
PProductCoefficient(Coefficient &basec_, Coefficient &corrc_)
virtual real_t Eval(ElementTransformation &T, const IntegrationPoint &ip)
Evaluate the coefficient in the element described by T at the point ip.
virtual void AssembleElementGrad(const FiniteElement &el, ElementTransformation &trans, const Vector &elfun, DenseMatrix &elmat) override
Assemble the local gradient matrix.
virtual real_t GetElementEnergy(const FiniteElement &el, ElementTransformation &trans, const Vector &elfun) override
Compute the local energy.
VectorCoefficient * fgrad
void SetPower(real_t pp_)
PUMPLaplacian(Coefficient *nfunc, VectorCoefficient *nfgrad, bool ownership_=true)
virtual void AssembleElementVector(const FiniteElement &el, ElementTransformation &trans, const Vector &elfun, Vector &elvect) override
Perform the local action of the NonlinearFormIntegrator.
virtual void AssembleElementGrad(const FiniteElement &el, ElementTransformation &trans, const Vector &elfun, DenseMatrix &elmat) override
Assemble the local gradient matrix.
ScreenedPoisson(Coefficient &nfunc, real_t rh)
void SetInput(Coefficient &nfunc)
virtual real_t GetElementEnergy(const FiniteElement &el, ElementTransformation &trans, const Vector &elfun) override
Compute the local energy.
virtual void AssembleElementVector(const FiniteElement &el, ElementTransformation &trans, const Vector &elfun, Vector &elvect) override
Perform the local action of the NonlinearFormIntegrator.
void trans(const Vector &u, Vector &x)
real_t AvgElementSize(ParMesh &pmesh)
real_t u(const Vector &xvec)
Settings for the output behavior of the IterativeSolver.