11 #ifndef MAPPER_VERTEX_MORPHING_SYMMETRIC_H
12 #define MAPPER_VERTEX_MORPHING_SYMMETRIC_H
24 #include "custom_utilities/filter_function.h"
71 : mrOriginModelPart(rOriginModelPart),
72 mrDestinationModelPart(rDestinationModelPart),
73 mMapperSettings(MapperSettings),
74 mFilterRadius(MapperSettings[
"filter_radius"].GetDouble())
87 void Initialize()
override;
97 void Update()
override;
104 virtual std::string
Info()
const override
106 return "MapperVertexMorphingSymmetric";
110 virtual void PrintInfo(std::ostream& rOStream)
const override
112 rOStream <<
"MapperVertexMorphingSymmetric";
116 virtual void PrintData(std::ostream& rOStream)
const override
132 bool mIsMappingInitialized =
false;
138 virtual void InitializeComputationOfMappingMatrix();
147 unsigned int mBucketSize = 100;
152 double mFilterRadius;
160 void CreateFilterFunction();
162 void InitializeMappingVariables();
164 void AssignMappingIds();
166 void CreateSearchTreeWithAllNodesInOriginModelPart();
168 void ComputeMappingMatrix();
170 void AllocateMatrix();
174 const unsigned int number_of_neighbors,
175 std::vector<double>& list_of_weights,
176 double& sum_of_weights );
180 const unsigned int number_of_neighbors,
181 const std::vector<double>& list_of_weights,
182 const std::vector<bool>& transform,
183 const double& sum_of_weights );
185 double GetVertexMorphingRadius(
const NodeType& rNode)
const override
187 return mFilterRadius;
Short class definition.
Definition: bucket.h:57
Base Class for all Mappers.
Definition: mapper.h:43
Short class definition.
Definition: mapper_vertex_morphing_symmetric.h:40
virtual ~MapperVertexMorphingSymmetric()
Destructor.
Definition: mapper_vertex_morphing_symmetric.h:79
Bucket< 3, NodeType, NodeVectorType, NodePointerType, NodeIteratorType, DoubleVectorIteratorType > BucketType
Definition: mapper_vertex_morphing_symmetric.h:59
TUblasSparseSpace< double > SparseSpaceType
Definition: mapper_vertex_morphing_symmetric.h:54
SparseSpaceType::MatrixType SparseMatrixType
Definition: mapper_vertex_morphing_symmetric.h:55
array_1d< double, 3 > array_3d
Definition: mapper_vertex_morphing_symmetric.h:51
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: mapper_vertex_morphing_symmetric.h:110
std::vector< double >::iterator DoubleVectorIteratorType
Definition: mapper_vertex_morphing_symmetric.h:50
KRATOS_CLASS_POINTER_DEFINITION(MapperVertexMorphingSymmetric)
Pointer definition of MapperVertexMorphingSymmetric.
SparseSpaceType::VectorType VectorType
Definition: mapper_vertex_morphing_symmetric.h:56
std::vector< NodePointerType > NodeVectorType
Definition: mapper_vertex_morphing_symmetric.h:48
virtual std::string Info() const override
Turn back information as a string.
Definition: mapper_vertex_morphing_symmetric.h:104
MapperVertexMorphingSymmetric(ModelPart &rOriginModelPart, ModelPart &rDestinationModelPart, Parameters MapperSettings)
Default constructor.
Definition: mapper_vertex_morphing_symmetric.h:70
Node NodeType
Definition: mapper_vertex_morphing_symmetric.h:46
Parameters mMapperSettings
Definition: mapper_vertex_morphing_symmetric.h:130
ModelPart & mrOriginModelPart
Definition: mapper_vertex_morphing_symmetric.h:128
Kratos::unique_ptr< FilterFunction > mpFilterFunction
Definition: mapper_vertex_morphing_symmetric.h:131
std::vector< NodePointerType >::iterator NodeIteratorType
Definition: mapper_vertex_morphing_symmetric.h:49
ModelPart & mrDestinationModelPart
Definition: mapper_vertex_morphing_symmetric.h:129
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: mapper_vertex_morphing_symmetric.h:116
NodeType::Pointer NodePointerType
Definition: mapper_vertex_morphing_symmetric.h:47
Tree< KDTreePartition< BucketType > > KDTree
Definition: mapper_vertex_morphing_symmetric.h:60
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
TVectorType VectorType
The vector type considered.
Definition: ublas_space.h:136
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
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