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.
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
Kratos::ContinuumExplicitSolverStrategy Class Reference

#include <explicit_solver_continuum.h>

Inheritance diagram for Kratos::ContinuumExplicitSolverStrategy:
Collaboration diagram for Kratos::ContinuumExplicitSolverStrategy:

Public Types

typedef ExplicitSolverStrategy BaseType
 
typedef BaseType::NodesArrayType NodesArrayType
 
typedef BaseType::ElementsArrayType ElementsArrayType
 
typedef BaseType::ElementsIterator ElementsIterator
 
typedef BaseType::ConditionsArrayType ConditionsArrayType
 
typedef GlobalPointersVector< ElementParticleWeakVectorType
 
typedef GlobalPointersVector< Element >::iterator ParticleWeakIteratorType
 
typedef ParticleWeakVectorType::ptr_iterator ParticleWeakIteratorType_ptr
 
- Public Types inherited from Kratos::ExplicitSolverStrategy
typedef ModelPart::NodesContainerType NodesArrayType
 
typedef ModelPart::ElementsContainerType ElementsArrayType
 
typedef ElementsArrayType::iterator ElementsIterator
 
typedef ModelPart::ConditionsContainerType ConditionsArrayType
 
typedef ModelPart::NodesContainerType::ContainerType NodesContainerType
 
typedef ModelPart::ElementsContainerType::ContainerType ElementsContainerType
 
typedef ModelPart::ConditionsContainerType::ContainerType ConditionsContainerType
 
typedef SpatialSearch::ResultElementsContainerType ResultElementsContainerType
 
typedef SpatialSearch::VectorResultElementsContainerType VectorResultElementsContainerType
 
typedef SpatialSearch::RadiusArrayType RadiusArrayType
 
typedef SpatialSearch::DistanceType DistanceType
 
typedef SpatialSearch::VectorDistanceType VectorDistanceType
 
typedef SpatialSearch::ResultConditionsContainerType ResultConditionsContainerType
 
typedef SpatialSearch::VectorResultConditionsContainerType VectorResultConditionsContainerType
 
typedef PointerVectorSet< Properties, IndexedObjectPropertiesContainerType
 
typedef PropertiesContainerType::iterator PropertiesIterator
 
typedef DiscreteParticleConfigure< 3 > ElementConfigureType
 
typedef NodeConfigure< 3 > NodeConfigureType
 
typedef RigidFaceGeometricalObjectConfigure< 3 > RigidFaceGeometricalConfigureType
 
typedef Variable< doubleComponentOf3ComponentsVariableType
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (ContinuumExplicitSolverStrategy)
 Pointer definition of ExplicitSolverStrategy. More...
 
 ContinuumExplicitSolverStrategy ()
 Default constructor. More...
 
 ContinuumExplicitSolverStrategy (ExplicitSolverSettings &settings, const double max_delta_time, const int n_step_search, const double safety_factor, const int delta_option, ParticleCreatorDestructor::Pointer p_creator_destructor, DEM_FEM_Search::Pointer p_dem_fem_search, SpatialSearch::Pointer pSpSearch, Parameters strategy_parameters)
 
virtual ~ContinuumExplicitSolverStrategy ()
 Destructor. More...
 
virtual void Initialize () override
 
virtual double SolveSolutionStep () override
 
void SearchDEMOperations (ModelPart &r_model_part, bool has_mpi)
 
void ComputeNewNeighboursHistoricalData () override
 
void ComputeNewRigidFaceNeighboursHistoricalData () override
 
void CreateContactElements () override
 
void SetCoordinationNumber (ModelPart &r_model_part)
 
double ComputeCoordinationNumber (double &standard_dev) override
 
void RebuildListOfContinuumSphericParticles ()
 
void SetSearchRadiiOnAllParticles (ModelPart &r_model_part, const double added_search_distance, const double amplification) override
 
void BoundingBoxUtility (bool is_time_to_mark_and_remove=true) override
 
virtual void CalculateMaxSearchDistance ()
 
virtual void MeshRepairOperations ()
 
virtual void DestroyMarkedParticlesRebuildLists ()
 
void CalculateMeanContactArea ()
 
void BreakAllBonds ()
 
void HealAllBonds ()
 
void SetInitialDemContacts ()
 
void SetInitialFemContacts ()
 
void FinalizeSolutionStep () override
 
void FinalizeSolutionStepFEM ()
 
void MarkNewSkinParticles ()
 
void ResetSkinParticles (ModelPart &r_model_part)
 
void ComputeSkin (ModelPart &rSpheresModelPart, const double factor_radius=1.0)
 
void BreakAlmostBrokenSpheres ()
 
virtual void Add_As_Own (ModelPart &r_model_part, ModelPart &mcontacts_model_part, ParticleWeakIteratorType_ptr continuum_ini_neighbour_iterator, Element::Pointer p_contact_element)
 
virtual void Add_As_Local (ModelPart &r_model_part, ModelPart &mcontacts_model_part, ParticleWeakIteratorType_ptr continuum_ini_neighbour_iterator, Element::Pointer p_contact_element)
 
virtual void Add_As_Ghost (ModelPart &r_model_part, ModelPart &mcontacts_model_part, ParticleWeakIteratorType_ptr continuum_ini_neighbour_iterator, Element::Pointer p_contact_element)
 
virtual void Sort_Contact_Modelpart (ModelPart &mcontacts_model_part)
 
virtual void Reassign_Ids (ModelPart &mcontacts_model_part)
 
virtual ElementsArrayTypeGetElements (ModelPart &r_model_part) override
 
ModelPartGetModelPart ()
 
ModelPartGetFemModelPart ()
 
virtual void SearchNeighbours ()
 
- Public Member Functions inherited from Kratos::ExplicitSolverStrategy
 KRATOS_CLASS_POINTER_DEFINITION (ExplicitSolverStrategy)
 Pointer definition of ExplicitSolverStrategy. More...
 
 ExplicitSolverStrategy ()
 
 ExplicitSolverStrategy (ExplicitSolverSettings &settings, const double max_delta_time, const int n_step_search, const double safety_factor, const int delta_option, ParticleCreatorDestructor::Pointer p_creator_destructor, DEM_FEM_Search::Pointer p_dem_fem_search, SpatialSearch::Pointer pSpSearch, Parameters strategy_parameters)
 
virtual ~ExplicitSolverStrategy ()
 Destructor. More...
 
template<class T >
void RebuildListOfSphericParticles (ElementsArrayType &pElements, std::vector< T * > &rCustomListOfParticles)
 
void RebuildListOfDiscontinuumSphericParticles ()
 
void RebuildPropertiesProxyPointers (std::vector< SphericParticle * > &rCustomListOfSphericParticles)
 
void SendProcessInfoToClustersModelPart ()
 
void UpdateMaxIdOfCreatorDestructor ()
 
void RepairPointersToNormalProperties (std::vector< SphericParticle * > &rCustomListOfSphericParticles)
 
virtual void AttachSpheresToStickyWalls ()
 
virtual void DisplayThreadInfo ()
 
double CalculateMaxInletTimeStep ()
 
virtual void InitializeClusters ()
 
virtual void GetClustersForce ()
 
virtual void GetRigidBodyElementsForce ()
 
void SearchDEMOperations (ModelPart &r_model_part, bool has_mpi=true)
 
void SearchFEMOperations (ModelPart &r_model_part, bool has_mpi=true)
 
virtual void ForceOperations (ModelPart &r_model_part)
 
void GetForce ()
 
void FastGetForce ()
 
virtual void PerformTimeIntegrationOfMotion (int StepFlag=0)
 
void InitializeSolutionStep ()
 
void InitializeElements ()
 
void InitializeDEMElements ()
 
void InitializeFEMElements ()
 
void InitializeFEMWallsAsRigidBodyElements (ModelPart::SubModelPartsContainerType::iterator &sub_model_part)
 
void MarkToDeleteAllSpheresInitiallyIndentedWithFEM (ModelPart &rSpheresModelPart)
 
void ComputeNodalArea ()
 
void ComputeNormalPressureVectorField ()
 
virtual void CalculateConditionsRHSAndAdd ()
 
void ClearFEMForces ()
 
void CalculateNodalPressuresAndStressesOnWalls ()
 
void SetFlagAndVariableToNodes (const Kratos::Flags &r_flag_name, ComponentOf3ComponentsVariableType &r_variable_to_set, const double value, NodesArrayType &r_nodes_array)
 
void SetVariableToNodes (ComponentOf3ComponentsVariableType &r_variable_to_set, const double value, NodesArrayType &r_nodes_array)
 
void ResetPrescribedMotionFlagsRespectingImposedDofs ()
 
void ApplyPrescribedBoundaryConditions ()
 
void ApplyInitialConditions ()
 
void SetNormalRadiiOnAllParticles (ModelPart &r_model_part)
 
virtual void SetSearchRadiiWithFemOnAllParticles (ModelPart &r_model_part, const double added_search_distance=0.0, const double amplification=1.0)
 
void InitializeContactElements ()
 
void PrepareContactElementsForPrinting ()
 
virtual void SearchRigidFaceNeighbours ()
 
void CheckHierarchyWithCurrentNeighbours ()
 
void CalculateInitialMaxIndentations (const ProcessInfo &r_process_info)
 
void PrepareContactModelPart (ModelPart &r_model_part, ModelPart &mcontacts_model_part)
 
void PrepareElementsForPrinting ()
 
void SynchronizeHistoricalVariables (ModelPart &r_model_part)
 
void SynchronizeRHS (ModelPart &r_model_part)
 
void Check_MPI (bool &has_mpi)
 
ModelPartGetModelPart ()
 
ModelPartGetFemModelPart ()
 
ModelPartGetContactModelPart ()
 
ModelPartGetClusterModelPart ()
 
ModelPartGetInletModelPart ()
 
ModelPartGetRigidBodyModelPart ()
 
VectorResultElementsContainerTypeGetResults ()
 
VectorDistanceTypeGetResultsDistances ()
 
RadiusArrayTypeGetArrayOfAmplifiedRadii ()
 
intGetNStepSearch ()
 
intGetSearchControl ()
 
intGetNumberOfThreads ()
 
doubleGetMaxTimeStep ()
 
doubleGetSafetyFactor ()
 
intGetDeltaOption ()
 
ParticleCreatorDestructor::Pointer & GetParticleCreatorDestructor ()
 
SpatialSearch::Pointer & GetSpSearch ()
 
VectorResultConditionsContainerTypeGetRigidFaceResults ()
 
VectorDistanceTypeGetRigidFaceResultsDistances ()
 
DEM_FEM_Search::Pointer & GetDemFemSearch ()
 
virtual ElementsArrayTypeGetAllElements (ModelPart &r_model_part)
 

Public Attributes

ModelPartmpInlet_model_part
 
ModelPartmpCluster_model_part
 
ModelPartmpContact_model_part
 
int mNumberOfThreads
 
std::vector< SphericParticle * > mListOfSphericParticles
 
std::vector< SphericParticle * > mListOfGhostSphericParticles
 

Protected Attributes

bool mcontinuum_simulating_option
 
int mFixSwitch
 
std::vector< SphericContinuumParticle * > mListOfSphericContinuumParticles
 
std::vector< SphericContinuumParticle * > mListOfGhostSphericContinuumParticles
 
DenseVector< intmSearchControlVector
 
- Protected Attributes inherited from Kratos::ExplicitSolverStrategy
Parameters mParameters
 
bool mRemoveBallsInitiallyTouchingWallsOption
 
VectorResultElementsContainerType mResults
 
VectorDistanceType mResultsDistances
 
RadiusArrayType mArrayOfAmplifiedRadii
 
int mNStepSearch
 
int mSearchControl
 
int mNumberOfThreads
 
double mMaxTimeStep
 
double mSafetyFactor
 
int mDeltaOption
 
ParticleCreatorDestructor::Pointer mpParticleCreatorDestructor
 
DEM_FEM_Search::Pointer mpDemFemSearch
 
SpatialSearch::Pointer mpSpSearch
 
bool mDoSearchNeighbourElements
 
bool mDoSearchNeighbourFEMElements
 
VectorResultConditionsContainerType mRigidFaceResults
 
VectorDistanceType mRigidFaceResultsDistances
 
ModelPartmpFem_model_part
 
ModelPartmpDem_model_part
 
ModelPartmpInlet_model_part
 
ModelPartmpContact_model_part
 
ModelPartmpCluster_model_part
 
ModelPartmpRigidBody_model_part
 
std::vector< SphericParticle * > mListOfSphericParticles
 
std::vector< SphericParticle * > mListOfGhostSphericParticles
 

Member Typedef Documentation

◆ BaseType

◆ ConditionsArrayType

◆ ElementsArrayType

◆ ElementsIterator

◆ NodesArrayType

◆ ParticleWeakIteratorType

◆ ParticleWeakIteratorType_ptr

◆ ParticleWeakVectorType

Constructor & Destructor Documentation

◆ ContinuumExplicitSolverStrategy() [1/2]

Kratos::ContinuumExplicitSolverStrategy::ContinuumExplicitSolverStrategy ( )
inline

Default constructor.

◆ ContinuumExplicitSolverStrategy() [2/2]

Kratos::ContinuumExplicitSolverStrategy::ContinuumExplicitSolverStrategy ( ExplicitSolverSettings settings,
const double  max_delta_time,
const int  n_step_search,
const double  safety_factor,
const int  delta_option,
ParticleCreatorDestructor::Pointer  p_creator_destructor,
DEM_FEM_Search::Pointer  p_dem_fem_search,
SpatialSearch::Pointer  pSpSearch,
Parameters  strategy_parameters 
)
inline

◆ ~ContinuumExplicitSolverStrategy()

virtual Kratos::ContinuumExplicitSolverStrategy::~ContinuumExplicitSolverStrategy ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ Add_As_Ghost()

virtual void Kratos::ContinuumExplicitSolverStrategy::Add_As_Ghost ( ModelPart r_model_part,
ModelPart mcontacts_model_part,
ParticleWeakIteratorType_ptr  continuum_ini_neighbour_iterator,
Element::Pointer  p_contact_element 
)
inlinevirtual

◆ Add_As_Local()

virtual void Kratos::ContinuumExplicitSolverStrategy::Add_As_Local ( ModelPart r_model_part,
ModelPart mcontacts_model_part,
ParticleWeakIteratorType_ptr  continuum_ini_neighbour_iterator,
Element::Pointer  p_contact_element 
)
inlinevirtual

◆ Add_As_Own()

virtual void Kratos::ContinuumExplicitSolverStrategy::Add_As_Own ( ModelPart r_model_part,
ModelPart mcontacts_model_part,
ParticleWeakIteratorType_ptr  continuum_ini_neighbour_iterator,
Element::Pointer  p_contact_element 
)
inlinevirtual

◆ BoundingBoxUtility()

void Kratos::ContinuumExplicitSolverStrategy::BoundingBoxUtility ( bool  is_time_to_mark_and_remove = true)
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ BreakAllBonds()

void Kratos::ContinuumExplicitSolverStrategy::BreakAllBonds ( )

◆ BreakAlmostBrokenSpheres()

void Kratos::ContinuumExplicitSolverStrategy::BreakAlmostBrokenSpheres ( )

◆ CalculateMaxSearchDistance()

void Kratos::ContinuumExplicitSolverStrategy::CalculateMaxSearchDistance ( )
virtual

◆ CalculateMeanContactArea()

void Kratos::ContinuumExplicitSolverStrategy::CalculateMeanContactArea ( )

◆ ComputeCoordinationNumber()

double Kratos::ContinuumExplicitSolverStrategy::ComputeCoordinationNumber ( double standard_dev)
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ ComputeNewNeighboursHistoricalData()

void Kratos::ContinuumExplicitSolverStrategy::ComputeNewNeighboursHistoricalData ( )
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ ComputeNewRigidFaceNeighboursHistoricalData()

void Kratos::ContinuumExplicitSolverStrategy::ComputeNewRigidFaceNeighboursHistoricalData ( )
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ ComputeSkin()

void Kratos::ContinuumExplicitSolverStrategy::ComputeSkin ( ModelPart rSpheresModelPart,
const double  factor_radius = 1.0 
)

◆ CreateContactElements()

void Kratos::ContinuumExplicitSolverStrategy::CreateContactElements ( )
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ DestroyMarkedParticlesRebuildLists()

void Kratos::ContinuumExplicitSolverStrategy::DestroyMarkedParticlesRebuildLists ( )
virtual

◆ FinalizeSolutionStep()

void Kratos::ContinuumExplicitSolverStrategy::FinalizeSolutionStep ( )
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ FinalizeSolutionStepFEM()

void Kratos::ContinuumExplicitSolverStrategy::FinalizeSolutionStepFEM ( )

◆ GetElements()

virtual ElementsArrayType& Kratos::ContinuumExplicitSolverStrategy::GetElements ( ModelPart r_model_part)
inlineoverridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ GetFemModelPart()

ModelPart& Kratos::ExplicitSolverStrategy::GetFemModelPart
inline

◆ GetModelPart()

ModelPart& Kratos::ExplicitSolverStrategy::GetModelPart
inline

◆ HealAllBonds()

void Kratos::ContinuumExplicitSolverStrategy::HealAllBonds ( )

◆ Initialize()

void Kratos::ContinuumExplicitSolverStrategy::Initialize ( void  )
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::ContinuumExplicitSolverStrategy::KRATOS_CLASS_POINTER_DEFINITION ( ContinuumExplicitSolverStrategy  )

Pointer definition of ExplicitSolverStrategy.

◆ MarkNewSkinParticles()

void Kratos::ContinuumExplicitSolverStrategy::MarkNewSkinParticles ( )

◆ MeshRepairOperations()

void Kratos::ContinuumExplicitSolverStrategy::MeshRepairOperations ( )
virtual

◆ Reassign_Ids()

virtual void Kratos::ContinuumExplicitSolverStrategy::Reassign_Ids ( ModelPart mcontacts_model_part)
inlinevirtual

◆ RebuildListOfContinuumSphericParticles()

void Kratos::ContinuumExplicitSolverStrategy::RebuildListOfContinuumSphericParticles ( )
inline

◆ ResetSkinParticles()

void Kratos::ContinuumExplicitSolverStrategy::ResetSkinParticles ( ModelPart r_model_part)

◆ SearchDEMOperations()

void Kratos::ContinuumExplicitSolverStrategy::SearchDEMOperations ( ModelPart r_model_part,
bool  has_mpi 
)

◆ SearchNeighbours()

void Kratos::ExplicitSolverStrategy::SearchNeighbours
virtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ SetCoordinationNumber()

void Kratos::ContinuumExplicitSolverStrategy::SetCoordinationNumber ( ModelPart r_model_part)

◆ SetInitialDemContacts()

void Kratos::ContinuumExplicitSolverStrategy::SetInitialDemContacts ( )

◆ SetInitialFemContacts()

void Kratos::ContinuumExplicitSolverStrategy::SetInitialFemContacts ( )

◆ SetSearchRadiiOnAllParticles()

void Kratos::ContinuumExplicitSolverStrategy::SetSearchRadiiOnAllParticles ( ModelPart r_model_part,
const double  added_search_distance,
const double  amplification 
)
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ SolveSolutionStep()

double Kratos::ContinuumExplicitSolverStrategy::SolveSolutionStep ( )
overridevirtual

Reimplemented from Kratos::ExplicitSolverStrategy.

◆ Sort_Contact_Modelpart()

virtual void Kratos::ContinuumExplicitSolverStrategy::Sort_Contact_Modelpart ( ModelPart mcontacts_model_part)
inlinevirtual

Member Data Documentation

◆ mcontinuum_simulating_option

bool Kratos::ContinuumExplicitSolverStrategy::mcontinuum_simulating_option
protected

◆ mFixSwitch

int Kratos::ContinuumExplicitSolverStrategy::mFixSwitch
protected

◆ mListOfGhostSphericContinuumParticles

std::vector<SphericContinuumParticle*> Kratos::ContinuumExplicitSolverStrategy::mListOfGhostSphericContinuumParticles
protected

◆ mListOfGhostSphericParticles

std::vector<SphericParticle*> Kratos::ExplicitSolverStrategy::mListOfGhostSphericParticles

◆ mListOfSphericContinuumParticles

std::vector<SphericContinuumParticle*> Kratos::ContinuumExplicitSolverStrategy::mListOfSphericContinuumParticles
protected

◆ mListOfSphericParticles

std::vector<SphericParticle*> Kratos::ExplicitSolverStrategy::mListOfSphericParticles

◆ mNumberOfThreads

int Kratos::ExplicitSolverStrategy::mNumberOfThreads

◆ mpCluster_model_part

ModelPart* Kratos::ExplicitSolverStrategy::mpCluster_model_part

◆ mpContact_model_part

ModelPart* Kratos::ExplicitSolverStrategy::mpContact_model_part

◆ mpInlet_model_part

ModelPart* Kratos::ExplicitSolverStrategy::mpInlet_model_part

◆ mSearchControlVector

DenseVector<int> Kratos::ContinuumExplicitSolverStrategy::mSearchControlVector
protected

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