KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
Protected Member Functions | Protected Attributes | List of all members
Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim > Class Template Reference

This only calculates the distance. Calculating the inside outside should be done by a derived class of this. More...

#include <calculate_discontinuous_distance_to_skin_process.h>

Inheritance diagram for Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >:
Collaboration diagram for Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >:

Public Member Functions

Type Definitions
 KRATOS_CLASS_POINTER_DEFINITION (CalculateDiscontinuousDistanceToSkinProcess)
 Pointer definition of CalculateDiscontinuousDistanceToSkinProcess. More...
 
Life Cycle
 CalculateDiscontinuousDistanceToSkinProcess (ModelPart &rVolumePart, ModelPart &rSkinPart)
 Constructor to be used. More...
 
 CalculateDiscontinuousDistanceToSkinProcess (ModelPart &rVolumePart, ModelPart &rSkinPart, const Flags rOptions)
 Constructor with option. More...
 
 CalculateDiscontinuousDistanceToSkinProcess (ModelPart &rVolumePart, ModelPart &rSkinPart, Parameters rParameters)
 Constructor with parameters. More...
 
 ~CalculateDiscontinuousDistanceToSkinProcess () override
 Destructor. More...
 
Operations
virtual void Initialize ()
 Initializes discontinuous distance computation process This method initializes the TO_SPLIT flag, the DISTANCE and ELEMENTAL_DISTANCES variables as well as the EMBEDDED_VELOCITY. More...
 
virtual void FindIntersections ()
 Calls the FindIntersectedObjectsProcess to find the intersections This method calls the FindIntersectedObjectsProcess FindIntersections method. More...
 
virtual std::vector< PointerVector< GeometricalObject > > & GetIntersections ()
 Get the array containing the intersecting objects This method returns an array containing pointers to the intersecting geometries. More...
 
virtual void CalculateDistances (std::vector< PointerVector< GeometricalObject >> &rIntersectedObjects)
 Computes the elemental distance values Given an intersecting objects vector, this method computes the elemental distance field. More...
 
void Clear () override
 Calls the FindIntersectedObjects Clear() method This method calls the FindIntersectedObjects Clear() to empty the intersecting objects geometries array. More...
 
void Execute () override
 Executes the CalculateDiscontinuousDistanceToSkinProcess This method automatically does all the calls required to compute the discontinuous distance function. More...
 
void CalculateEmbeddedVariableFromSkin (const Variable< double > &rVariable, const Variable< double > &rEmbeddedVariable)
 Calculate embedded variable from skin double specialization This method calls the specialization method for two double variables. More...
 
void CalculateEmbeddedVariableFromSkin (const Variable< array_1d< double, 3 >> &rVariable, const Variable< array_1d< double, 3 >> &rEmbeddedVariable)
 Calculate embedded variable from skin array specialization This method calls the specialization method for two double variables. More...
 
const Parameters GetDefaultParameters () const override
 Obtain the default parameters to construct the class. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::Process
 KRATOS_CLASS_POINTER_DEFINITION (Process)
 Pointer definition of Process. More...
 
 Process ()
 Default constructor. More...
 
 Process (const Flags options)
 
 ~Process () override
 Destructor. More...
 
void operator() ()
 This operator is provided to call the process as a function and simply calls the Execute method. More...
 
virtual Process::Pointer Create (Model &rModel, Parameters ThisParameters)
 This method creates an pointer of the process. More...
 
virtual void ExecuteInitialize ()
 This function is designed for being called at the beginning of the computations right after reading the model and the groups. More...
 
virtual void ExecuteBeforeSolutionLoop ()
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
virtual void ExecuteInitializeSolutionStep ()
 This function will be executed at every time step BEFORE performing the solve phase. More...
 
virtual void ExecuteFinalizeSolutionStep ()
 This function will be executed at every time step AFTER performing the solve phase. More...
 
virtual void ExecuteBeforeOutputStep ()
 This function will be executed at every time step BEFORE writing the output. More...
 
virtual void ExecuteAfterOutputStep ()
 This function will be executed at every time step AFTER writing the output. More...
 
virtual void ExecuteFinalize ()
 This function is designed for being called at the end of the computations. More...
 
virtual int Check ()
 This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More...
 
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (Flags const &rOther)
 Assignment operator. More...
 
 operator bool () const
 
Flags operator~ () const
 
bool operator! () const
 
void AssignFlags (Flags const &rOther)
 
void Set (const Flags ThisFlag)
 
void Set (const Flags ThisFlag, bool Value)
 
void Reset (const Flags ThisFlag)
 
void Flip (const Flags ThisFlag)
 
void SetPosition (IndexType Position, bool Value=true)
 
bool GetPosition (IndexType Position) const
 
void FlipPosition (IndexType Position)
 
void ClearPosition (IndexType Position)
 
void Clear ()
 
Flags AsFalse () const
 
bool Is (Flags const &rOther) const
 
bool IsDefined (Flags const &rOther) const
 
bool IsNot (Flags const &rOther) const
 
bool IsNotDefined (Flags const &rOther) const
 
 KRATOS_CLASS_POINTER_DEFINITION (Flags)
 Pointer definition of Flags. More...
 
const Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Protected Member Functions

Plane3D SetIntersectionPlane (const std::vector< array_1d< double, 3 >> &rIntPtsVector)
 
Plane3D SetIntersectionPlane (const std::vector< array_1d< double, 3 >> &rIntPtsVector)
 
Protected Operations
Plane3D SetIntersectionPlane (const std::vector< array_1d< double, 3 >> &rIntPtsVector)
 Set the Intersection Plane object This method returns the plane that defines the element intersection. The 2D case is considered to be a simplification of the 3D one, so a "fake" extra point is created by extruding the first point in the z-direction. More...
 
double CalculateCharacteristicLength ()
 Calculates the domain characteristic length This method computes the domain characteristic length as the norm of the diagonal vector that joins the maximum and minimum coordinates. More...
 

Protected Attributes

const Variable< Vector > * mpElementalDistancesVariable = &ELEMENTAL_DISTANCES
 

Deleted

FindIntersectedGeometricalObjectsProcess mFindIntersectedObjectsProcess
 
 CalculateDiscontinuousDistanceToSkinProcess ()=delete
 Default constructor. More...
 
 CalculateDiscontinuousDistanceToSkinProcess (CalculateDiscontinuousDistanceToSkinProcess const &rOther)=delete
 Copy constructor. More...
 
CalculateDiscontinuousDistanceToSkinProcessoperator= (CalculateDiscontinuousDistanceToSkinProcess const &rOther)=delete
 Assignment operator. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::Flags
enum  FlagsList {
  Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 ,
  Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 ,
  Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 ,
  Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 ,
  Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 ,
  Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 ,
  Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 ,
  Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30
}
 
typedef int64_t BlockType
 
typedef int64_t FlagType
 
typedef std::size_t IndexType
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Detailed Description

template<std::size_t TDim = 3>
class Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >

This only calculates the distance. Calculating the inside outside should be done by a derived class of this.

This process takes a volume model part (with tetrahedra mesh) and a skin model part (with triangle mesh) and and calcualtes the distance to the skin for all the elements and nodes of the volume model part.

Constructor & Destructor Documentation

◆ CalculateDiscontinuousDistanceToSkinProcess() [1/5]

template<std::size_t TDim>
Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::CalculateDiscontinuousDistanceToSkinProcess ( ModelPart rVolumePart,
ModelPart rSkinPart 
)

Constructor to be used.

◆ CalculateDiscontinuousDistanceToSkinProcess() [2/5]

template<std::size_t TDim>
Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::CalculateDiscontinuousDistanceToSkinProcess ( ModelPart rVolumePart,
ModelPart rSkinPart,
const Flags  rOptions 
)

Constructor with option.

◆ CalculateDiscontinuousDistanceToSkinProcess() [3/5]

template<std::size_t TDim>
Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::CalculateDiscontinuousDistanceToSkinProcess ( ModelPart rVolumePart,
ModelPart rSkinPart,
Parameters  rParameters 
)

Constructor with parameters.

◆ ~CalculateDiscontinuousDistanceToSkinProcess()

Destructor.

◆ CalculateDiscontinuousDistanceToSkinProcess() [4/5]

Default constructor.

◆ CalculateDiscontinuousDistanceToSkinProcess() [5/5]

Copy constructor.

Member Function Documentation

◆ CalculateCharacteristicLength()

template<std::size_t TDim>
double Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::CalculateCharacteristicLength
protected

Calculates the domain characteristic length This method computes the domain characteristic length as the norm of the diagonal vector that joins the maximum and minimum coordinates.

Returns
double the calculated characteristic length

◆ CalculateDistances()

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::CalculateDistances ( std::vector< PointerVector< GeometricalObject >> &  rIntersectedObjects)
virtual

Computes the elemental distance values Given an intersecting objects vector, this method computes the elemental distance field.

Parameters
rIntersectedObjectsarray containing pointers to the intersecting geometries

Reimplemented in Kratos::CalculateDistanceToSkinProcess< TDim >.

◆ CalculateEmbeddedVariableFromSkin() [1/2]

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::CalculateEmbeddedVariableFromSkin ( const Variable< array_1d< double, 3 >> &  rVariable,
const Variable< array_1d< double, 3 >> &  rEmbeddedVariable 
)

Calculate embedded variable from skin array specialization This method calls the specialization method for two double variables.

Parameters
rVariableorigin array variable in the skin mesh
rEmbeddedVariableelemental array variable in the volume mesh to be computed

◆ CalculateEmbeddedVariableFromSkin() [2/2]

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::CalculateEmbeddedVariableFromSkin ( const Variable< double > &  rVariable,
const Variable< double > &  rEmbeddedVariable 
)

Calculate embedded variable from skin double specialization This method calls the specialization method for two double variables.

Parameters
rVariableorigin double variable in the skin mesh
rEmbeddedVariableelemental double variable in the volume mesh to be computed

◆ Clear()

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::Clear
overridevirtual

Calls the FindIntersectedObjects Clear() method This method calls the FindIntersectedObjects Clear() to empty the intersecting objects geometries array.

Reimplemented from Kratos::Process.

◆ Execute()

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::Execute
overridevirtual

Executes the CalculateDiscontinuousDistanceToSkinProcess This method automatically does all the calls required to compute the discontinuous distance function.

Reimplemented from Kratos::Process.

◆ FindIntersections()

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::FindIntersections
virtual

Calls the FindIntersectedObjectsProcess to find the intersections This method calls the FindIntersectedObjectsProcess FindIntersections method.

◆ GetDefaultParameters()

template<std::size_t TDim>
const Parameters Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::GetDefaultParameters
overridevirtual

Obtain the default parameters to construct the class.

Reimplemented from Kratos::Process.

◆ GetIntersections()

template<std::size_t TDim>
std::vector< PointerVector< GeometricalObject > > & Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::GetIntersections
virtual

Get the array containing the intersecting objects This method returns an array containing pointers to the intersecting geometries.

Returns
std::vector<PointerVector<GeometricalObject>>&

◆ Info()

template<std::size_t TDim>
std::string Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::Info
overridevirtual

Turn back information as a string.

Reimplemented from Kratos::Flags.

◆ Initialize()

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::Initialize
virtual

Initializes discontinuous distance computation process This method initializes the TO_SPLIT flag, the DISTANCE and ELEMENTAL_DISTANCES variables as well as the EMBEDDED_VELOCITY.

Reimplemented in Kratos::CalculateDistanceToSkinProcess< TDim >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<std::size_t TDim = 3>
Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::KRATOS_CLASS_POINTER_DEFINITION ( CalculateDiscontinuousDistanceToSkinProcess< TDim >  )

◆ operator=()

Assignment operator.

◆ PrintData()

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::PrintData ( std::ostream &  rOStream) const
overridevirtual

Print object's data.

Reimplemented from Kratos::Flags.

◆ PrintInfo()

template<std::size_t TDim>
void Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::PrintInfo ( std::ostream &  rOStream) const
overridevirtual

Print information about this object.

Reimplemented from Kratos::Flags.

◆ SetIntersectionPlane() [1/3]

Plane3D Kratos::CalculateDiscontinuousDistanceToSkinProcess< 2 >::SetIntersectionPlane ( const std::vector< array_1d< double, 3 >> &  rIntPtsVector)
protected

◆ SetIntersectionPlane() [2/3]

Plane3D Kratos::CalculateDiscontinuousDistanceToSkinProcess< 3 >::SetIntersectionPlane ( const std::vector< array_1d< double, 3 >> &  rIntPtsVector)
protected

◆ SetIntersectionPlane() [3/3]

template<std::size_t TDim = 3>
Plane3D Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::SetIntersectionPlane ( const std::vector< array_1d< double, 3 >> &  rIntPtsVector)
protected

Set the Intersection Plane object This method returns the plane that defines the element intersection. The 2D case is considered to be a simplification of the 3D one, so a "fake" extra point is created by extruding the first point in the z-direction.

Parameters
rIntPtsVectorarray containing the intersecting points coordinates
Returns
Plane3D the plane defined by the given intersecting points coordinates

Member Data Documentation

◆ mFindIntersectedObjectsProcess

template<std::size_t TDim = 3>
FindIntersectedGeometricalObjectsProcess Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::mFindIntersectedObjectsProcess

◆ mpElementalDistancesVariable

template<std::size_t TDim = 3>
const Variable<Vector>* Kratos::CalculateDiscontinuousDistanceToSkinProcess< TDim >::mpElementalDistancesVariable = &ELEMENTAL_DISTANCES
protected

The documentation for this class was generated from the following files: