20 #ifndef LIBMESH_MESH_SMOOTHER_LAPLACE_H 21 #define LIBMESH_MESH_SMOOTHER_LAPLACE_H 27 #include "libmesh/libmesh.h" 28 #include "libmesh/mesh_smoother.h" 53 const unsigned int n_iterations);
55 #ifdef LIBMESH_ENABLE_DEPRECATED 82 virtual void smooth()
override;
84 #ifdef LIBMESH_ENABLE_DEPRECATED 93 void smooth(
unsigned int n_iterations);
126 std::vector<std::vector<dof_id_type>>
_graph;
137 #endif // LIBMESH_MESH_SMOOTHER_LAPLACE_H std::vector< std::vector< dof_id_type > > _graph
Data structure for holding the L-graph.
bool _initialized
True if the L-graph has been created, false otherwise.
void print_graph(std::ostream &out_stream=libMesh::out) const
Mainly for debugging, this function will print out the connectivity graph which has been created...
void init()
Initialization for the Laplace smoothing routine is basically identical to building an "L-graph" whic...
The libMesh namespace provides an interface to certain functionality in the library.
virtual void smooth() override
Redefinition of the smooth function from the base class.
This class defines the data structures necessary for Laplace smoothing.
The UnstructuredMesh class is derived from the MeshBase class.
LaplaceMeshSmoother(UnstructuredMesh &mesh, const unsigned int n_iterations)
Constructor.
LaplaceMeshSmoother(UnstructuredMesh &mesh)
Constructor.
void allgather_graph()
This function allgather's the (local) graph after it is computed on each processor by the init() func...
unsigned int _n_iterations
Number of smoothing iterations to perform.
This class provides the necessary interface for mesh smoothing.
virtual ~LaplaceMeshSmoother()=default
Destructor.