20 #ifndef LIBMESH_MESH_SMOOTHER_VSMOOTHER_H 21 #define LIBMESH_MESH_SMOOTHER_VSMOOTHER_H 23 #include "libmesh/libmesh_config.h" 24 #if defined(LIBMESH_ENABLE_VSMOOTHER) 27 #include "libmesh/libmesh_common.h" 28 #include "libmesh/mesh_smoother.h" 29 #include "libmesh/variational_smoother_system.h" 30 #include "libmesh/variational_smoother_constraint.h" 32 #include "libmesh/distributed_mesh.h" 33 #include "libmesh/equation_systems.h" 45 class UnstructuredMesh;
83 Real dilation_weight=0.5,
84 const bool preserve_subdomain_boundaries=
true);
110 void smooth(
unsigned int n_iterations);
176 #endif // defined(LIBMESH_ENABLE_VSMOOTHER) 178 #endif // LIBMESH_MESH_SMOOTHER_VSMOOTHER_H const Real _dilation_weight
Smoother control variables.
virtual ~VariationalMeshSmoother()=default
Destructor.
std::unique_ptr< EquationSystems > _equation_systems
EquationsSystems object associated with the smoother.
const MeshQualityInfo & get_mesh_info() const
Getter for the _system's _mesh_info attribute.
VariationalSmootherSystem * _system
VariationalSmootherSystem * system() const
Getter for _system to protect against dangling pointers.
The libMesh namespace provides an interface to certain functionality in the library.
std::unique_ptr< VariationalSmootherConstraint > _constraint
Constraints imposed on the smoothing process.
std::unique_ptr< DistributedMesh > _mesh_copy
Mesh copy to avoid multiple EquationSystems.
Struct to hold smoother-relevant information about the mesh quality.
bool _setup_called
Attribute the keep track of whether the setup method has been called.
The UnstructuredMesh class is derived from the MeshBase class.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
This is an implementation of Larisa Branets' smoothing algorithms.
VariationalMeshSmoother(UnstructuredMesh &mesh, Real dilation_weight=0.5, const bool preserve_subdomain_boundaries=true)
Simple constructor to use for smoothing purposes.
This class provides the necessary interface for mesh smoothing.
virtual void setup()
Setup method that creates equation systems, system, and constraints, to be called just prior to smoot...
const bool _preserve_subdomain_boundaries
Whether subdomain boundaries are subject to change via smoothing.
virtual void smooth() override
Redefinition of the smooth function from the base class.