| FEAT 3
    Finite Element Analysis Toolbox | 
Umbrella mesh smoother with both uniform and scale-dependent neighbor averaging For more information see More...
#include <umbrella_smoother.hpp>
 
  
| Public Types | |
| typedef MeshType_::CoordType | CoordType | 
| typedef MeshType_::VertexSetType | VertexSetType | 
| Public Member Functions | |
| UmbrellaSmoother (MeshType_ &mesh) | |
| Constructor.  More... | |
| void | compile () | 
| void | smooth (Index max_iter, CoordType tol, bool uniform=true) | 
| Smooths the mesh with an umbrella operator.  More... | |
| Static Public Attributes | |
| static constexpr int | shape_dim = MeshType_::shape_dim | 
| static constexpr int | world_dim = MeshType_::world_dim | 
| Protected Member Functions | |
| virtual void | _calc_boundary_facets () | 
| determines for each facet whether it is a boundary facet or an inner facet  More... | |
| virtual void | _calc_boundary_vertices () | 
| determines for each vertex whether it is a boundary vertex or an inner vertex  More... | |
| virtual void | _calc_max (CoordType &) | 
| calculates global maximum over all processes; is overridden in DistributedUmbrellaSmoother  More... | |
| virtual void | _synchronize (std::vector< Tiny::Vector< CoordType, world_dim > > &, std::vector< CoordType > &) | 
| synchronizes the smoother over all processes; is overridden in DistributedUmbrellaSmoother  More... | |
| Protected Attributes | |
| std::vector< int > | _boundary_facets | 
| vector to store which facet is at the boundary  More... | |
| std::vector< int > | _boundary_vertices | 
| vector to store which vertex is at the boundary  More... | |
| std::vector< CoordType > | _edge_weights | 
| MeshType_ & | _mesh | 
| the mesh we want to smooth  More... | |
| VertexSetType & | _vtx | 
Umbrella mesh smoother with both uniform and scale-dependent neighbor averaging For more information see
| MeshType_ | The type of the mesh that is to be smoothed, e.g. ConformalMesh | 
Definition at line 46 of file umbrella_smoother.hpp.
| typedef MeshType_::CoordType FEAT::Geometry::UmbrellaSmoother< MeshType_ >::CoordType | 
Definition at line 49 of file umbrella_smoother.hpp.
| typedef MeshType_::VertexSetType FEAT::Geometry::UmbrellaSmoother< MeshType_ >::VertexSetType | 
Definition at line 50 of file umbrella_smoother.hpp.
| 
 | inlineexplicit | 
Constructor.
| [in] | _mesh | A reference to the mesh that is to be smoothed | 
Definition at line 74 of file umbrella_smoother.hpp.
| 
 | inlinevirtual | 
Definition at line 84 of file umbrella_smoother.hpp.
| 
 | inlineprotectedvirtual | 
determines for each facet whether it is a boundary facet or an inner facet
Reimplemented in FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >.
Definition at line 208 of file umbrella_smoother.hpp.
References FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_boundary_facets, and FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_mesh.
Referenced by FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_calc_boundary_facets(), and FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_vertices().
| 
 | inlineprotectedvirtual | 
determines for each vertex whether it is a boundary vertex or an inner vertex
Definition at line 237 of file umbrella_smoother.hpp.
References FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_boundary_facets, FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_boundary_vertices, FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_facets(), and FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_mesh.
Referenced by FEAT::Geometry::UmbrellaSmoother< MeshType_ >::smooth().
| 
 | inlineprotectedvirtual | 
calculates global maximum over all processes; is overridden in DistributedUmbrellaSmoother
Reimplemented in FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >.
Definition at line 269 of file umbrella_smoother.hpp.
Referenced by FEAT::Geometry::UmbrellaSmoother< MeshType_ >::smooth().
| 
 | inlineprotectedvirtual | 
synchronizes the smoother over all processes; is overridden in DistributedUmbrellaSmoother
Reimplemented in FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >.
Definition at line 263 of file umbrella_smoother.hpp.
Referenced by FEAT::Geometry::UmbrellaSmoother< MeshType_ >::smooth().
| 
 | inline | 
Definition at line 88 of file umbrella_smoother.hpp.
| 
 | inline | 
Smooths the mesh with an umbrella operator.
Iteratively moves each inner vertex towards the (possibly weighted) average of its adjacent vertices (Jacobi update). The weights are either uniform or inversely proportional to the edge lengths (w_ij = 1 / |e_ij|).
| [in] | uniform | true for uniform operator and false for scale dependent operator | 
| [in] | max_iter | Maximum number of smoothing iterations | 
| [in] | tol | Iteration stops if the largest vertex displacement between two steps falls below this threshold | 
Definition at line 115 of file umbrella_smoother.hpp.
References FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_boundary_vertices, FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_vertices(), FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_max(), FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_mesh, FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_synchronize(), FEAT::Math::maxi(), and FEAT::Math::sqrt().
| 
 | protected | 
vector to store which facet is at the boundary
Definition at line 60 of file umbrella_smoother.hpp.
Referenced by FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_facets(), and FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_vertices().
| 
 | protected | 
vector to store which vertex is at the boundary
Definition at line 58 of file umbrella_smoother.hpp.
Referenced by FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_vertices(), and FEAT::Geometry::UmbrellaSmoother< MeshType_ >::smooth().
| 
 | protected | 
Definition at line 62 of file umbrella_smoother.hpp.
| 
 | protected | 
the mesh we want to smooth
Definition at line 56 of file umbrella_smoother.hpp.
Referenced by FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_facets(), FEAT::Geometry::UmbrellaSmoother< MeshType_ >::_calc_boundary_vertices(), and FEAT::Geometry::UmbrellaSmoother< MeshType_ >::smooth().
| 
 | protected | 
Definition at line 64 of file umbrella_smoother.hpp.
| 
 | staticconstexpr | 
Definition at line 51 of file umbrella_smoother.hpp.
| 
 | staticconstexpr | 
Definition at line 52 of file umbrella_smoother.hpp.