12 #ifndef MAPPER_VERTEX_MORPHING_ADAPTIVE_RADIUS_H
13 #define MAPPER_VERTEX_MORPHING_ADAPTIVE_RADIUS_H
40 template<
class TBaseVertexMorphingMapper>
93 void Initialize()
override;
95 void Update()
override;
102 virtual std::string
Info()
const override;
105 virtual void PrintInfo(std::ostream& rOStream)
const override;
108 virtual void PrintData(std::ostream& rOStream)
const override;
119 std::string mRadiusFunctionType;
120 double mRadiusFunctionParameter;
121 double mMinimumFilterRadius;
122 double mCurvatureLimit;
134 double CurvatureFunction(
const double& rCurvature,
const double& rElementSize);
136 void CalculateCurvatureBasedFilterRadius();
138 void SmoothenCurvatureBasedFilterRadius();
140 void CalculateAdaptiveVertexMorphingRadius();
142 double GetVertexMorphingRadius(
const NodeType& rNode)
const override;
144 void CreateSearchTreeWithAllNodesInOriginModelPart();
146 void CreateListOfNodesInOriginModelPart();
151 const unsigned int number_of_neighbors,
152 std::vector<double>& list_of_weights,
153 double& sum_of_weights)
override;
155 void AssignMappingIds();
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Short class definition.
Definition: bucket.h:57
Base class for all Elements.
Definition: element.h:60
Short class definition.
Definition: mapper_vertex_morphing_adaptive_radius.h:42
std::vector< double >::iterator DoubleVectorIterator
Definition: mapper_vertex_morphing_adaptive_radius.h:62
UblasSpace< double, CompressedMatrix, Vector > SparseSpaceType
Definition: mapper_vertex_morphing_adaptive_radius.h:66
KRATOS_CLASS_POINTER_DEFINITION(MapperVertexMorphingAdaptiveRadius)
Pointer definition of MapperVertexMorphingAdaptiveRadius.
SparseSpaceType::MatrixType SparseMatrixType
Definition: mapper_vertex_morphing_adaptive_radius.h:67
std::vector< NodeType::Pointer >::iterator NodeIterator
Definition: mapper_vertex_morphing_adaptive_radius.h:64
NodeType::Pointer NodeTypePointer
Definition: mapper_vertex_morphing_adaptive_radius.h:58
virtual ~MapperVertexMorphingAdaptiveRadius()=default
Destructor.
std::vector< NodeTypePointer > NodeVector
Definition: mapper_vertex_morphing_adaptive_radius.h:60
std::size_t IndexType
Definition: mapper_vertex_morphing_adaptive_radius.h:56
TBaseVertexMorphingMapper BaseType
Definition: mapper_vertex_morphing_adaptive_radius.h:47
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
A generic tree data structure for spatial partitioning.
Definition: tree.h:190
A class template for handling data types, matrices, and vectors in a Ublas space.
Definition: ublas_space.h:121
TMatrixType MatrixType
The matrix type considered.
Definition: ublas_space.h:133
void ComputeWeightForAllNeighbors(double &rSumOfWeights, std::vector< double > &rListOfWeights, const FilterFunction &rFilterFunction, const DampingFunction &rDampingFunction, const double Radius, const EntityPoint< TEntityType > &rDesignPoint, const std::vector< typename EntityPoint< TEntityType >::Pointer > &rNeighbourNodes, const std::vector< typename EntityPoint< TEntityType >::Pointer > &rDampingNeighbourNodes, const IndexType NumberOfNeighbours, Expression const *const pExpression)
Definition: explicit_filter.cpp:125
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::unique_ptr< T > unique_ptr
Definition: smart_pointers.h:33