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

#include <DEM_parallel_bond_CL.h>

Inheritance diagram for Kratos::DEM_parallel_bond:
Collaboration diagram for Kratos::DEM_parallel_bond:

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (DEM_parallel_bond)
 
 DEM_parallel_bond ()
 
void TransferParametersToProperties (const Parameters &parameters, Properties::Pointer pProp) override
 
std::string GetTypeOfLaw () override
 
void Check (Properties::Pointer pProp) const override
 
 ~DEM_parallel_bond ()
 
DEMContinuumConstitutiveLaw::Pointer Clone () const override
 
virtual void CalculateContactArea (double radius, double other_radius, double &calculation_area) override
 
virtual double CalculateContactArea (double radius, double other_radius, Vector &v) override
 
void GetContactArea (const double radius, const double other_radius, const Vector &vector_of_initial_areas, const int neighbour_position, double &calculation_area) override
 
void CalculateElasticConstants (double &kn_el, double &kt_el, double initial_dist, double equiv_young, double equiv_poisson, double calculation_area, SphericContinuumParticle *element1, SphericContinuumParticle *element2, double indentation) override
 
virtual void InitializeContact (SphericParticle *const element1, SphericParticle *const element2, const double indentation)
 
virtual void CalculateUnbondedViscoDampingForce (double LocalRelVel[3], double UnbondedViscoDampingLocalContactForce[3], SphericParticle *const element1, SphericParticle *const element2)
 
double LocalMaxSearchDistance (const int i, SphericContinuumParticle *element1, SphericContinuumParticle *element2) override
 
virtual double GetYoungModulusForComputingRotationalMoments (const double &equiv_young)
 
virtual void CheckFailure (const int i_neighbour_count, SphericContinuumParticle *element1, SphericContinuumParticle *element2, double &contact_sigma, double &contact_tau, double LocalElasticContactForce[3], double ViscoDampingLocalContactForce[3], double ElasticLocalRotationalMoment[3], double ViscoLocalRotationalMoment[3]) override
 
void CalculateForces (const ProcessInfo &r_process_info, double OldLocalElasticContactForce[3], double LocalElasticContactForce[3], double LocalElasticExtraContactForce[3], double LocalCoordSystem[3][3], double LocalDeltDisp[3], const double kn_el, const double kt_el, double &contact_sigma, double &contact_tau, double &failure_criterion_state, double equiv_young, double equiv_shear, double indentation, double calculation_area, double &acumulated_damage, SphericContinuumParticle *element1, SphericContinuumParticle *element2, int i_neighbour_count, int time_steps, bool &sliding, double &equiv_visco_damp_coeff_normal, double &equiv_visco_damp_coeff_tangential, double LocalRelVel[3], double ViscoDampingLocalContactForce[3]) override
 
virtual double ComputeNormalUnbondedForce (double unbonded_indentation)
 
void CalculateNormalForces (double LocalElasticContactForce[3], const double kn_el, double equiv_young, double indentation, double calculation_area, double &acumulated_damage, SphericContinuumParticle *element1, SphericContinuumParticle *element2, int i_neighbour_count, int time_steps, const ProcessInfo &r_process_info, double &contact_sigma)
 
virtual void CalculateViscoDampingCoeff (double &equiv_visco_damp_coeff_normal, double &equiv_visco_damp_coeff_tangential, SphericContinuumParticle *element1, SphericContinuumParticle *element2, const double kn_el, const double kt_el) override
 
void CalculateViscoDamping (double LocalRelVel[3], double ViscoDampingLocalContactForce[3], double indentation, double equiv_visco_damp_coeff_normal, double equiv_visco_damp_coeff_tangential, bool &sliding, int failure_id, int i_neighbour_count, SphericContinuumParticle *element1, SphericContinuumParticle *element2)
 
virtual void CalculateTangentialForces (double OldLocalElasticContactForce[3], double LocalElasticContactForce[3], double LocalElasticExtraContactForce[3], double ViscoDampingLocalContactForce[3], double LocalCoordSystem[3][3], double LocalDeltDisp[3], double LocalRelVel[3], const double kt_el, const double equiv_shear, double &contact_tau, double indentation, double calculation_area, double &failure_criterion_state, SphericContinuumParticle *element1, SphericContinuumParticle *element2, int i_neighbour_count, bool &sliding, const ProcessInfo &r_process_info)
 
void CalculateMoments (SphericContinuumParticle *element, SphericContinuumParticle *neighbor, double equiv_young, double distance, double calculation_area, double LocalCoordSystem[3][3], double ElasticLocalRotationalMoment[3], double ViscoLocalRotationalMoment[3], double equiv_poisson, double indentation, double LocalElasticContactForce[3], double normalLocalContactForce, double GlobalElasticContactForces[3], double LocalCoordSystem_2[3], const int i_neighbor_count) override
 
void ComputeParticleRotationalMoments (SphericContinuumParticle *element, SphericContinuumParticle *neighbor, double equiv_young, double distance, double calculation_area, double LocalCoordSystem[3][3], double ElasticLocalRotationalMoment[3], double ViscoLocalRotationalMoment[3], double equiv_poisson, double indentation, double LocalElasticContactForce[3]) override
 
void AddContributionOfShearStrainParallelToBond (double OldLocalElasticContactForce[3], double LocalElasticExtraContactForce[3], array_1d< double, 3 > &OldElasticExtraContactForce, double LocalCoordSystem[3][3], const double kt_el, const double calculation_area, SphericContinuumParticle *element1, SphericContinuumParticle *element2)
 
- Public Member Functions inherited from Kratos::DEMContinuumConstitutiveLaw
 KRATOS_CLASS_POINTER_DEFINITION (DEMContinuumConstitutiveLaw)
 
 DEMContinuumConstitutiveLaw ()
 
 DEMContinuumConstitutiveLaw (const DEMContinuumConstitutiveLaw &rReferenceContinuumConstitutiveLaw)
 
virtual void Initialize (SphericContinuumParticle *element1, SphericContinuumParticle *element2, Properties::Pointer pProps)
 
virtual void SetConstitutiveLawInProperties (Properties::Pointer pProp, bool verbose=true)
 
virtual void SetConstitutiveLawInPropertiesWithParameters (Properties::Pointer pProp, const Parameters &parameters, bool verbose=true)
 
virtual ~DEMContinuumConstitutiveLaw ()
 
virtual void CalculateViscoDamping (double LocalRelVel[3], double ViscoDampingLocalContactForce[3], double indentation, double equiv_visco_damp_coeff_normal, double equiv_visco_damp_coeff_tangential, bool &sliding, int failure_id)
 
virtual void CalculateNormalForces (double LocalElasticContactForce[3], const double kn_el, double equiv_young, double indentation, double calculation_area, double &acumulated_damage, SphericContinuumParticle *element1, SphericContinuumParticle *element2, int i_neighbour_count, int time_steps, const ProcessInfo &r_process_info)
 
virtual void CalculateTangentialForces (double OldLocalElasticContactForce[3], double LocalElasticContactForce[3], double LocalElasticExtraContactForce[3], double ViscoDampingLocalContactForce[3], double LocalCoordSystem[3][3], double LocalDeltDisp[3], double LocalRelVel[3], const double kt_el, const double equiv_shear, double &contact_sigma, double &contact_tau, double indentation, double calculation_area, double &failure_criterion_state, SphericContinuumParticle *element1, SphericContinuumParticle *element2, int i_neighbour_count, bool &sliding, const ProcessInfo &r_process_info)
 
virtual void AddPoissonContribution (const double equiv_poisson, double LocalCoordSystem[3][3], double &normal_force, double calculation_area, BoundedMatrix< double, 3, 3 > *mSymmStressTensor, SphericContinuumParticle *element1, SphericContinuumParticle *element2, const ProcessInfo &r_process_info, const int i_neighbor_count, const double indentation)
 
virtual bool CheckRequirementsOfStressTensor ()
 
- 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
 
virtual std::string Info () const
 Turn back information as a string. More...
 
virtual void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 
 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...
 

Public Attributes

double mUnbondedLocalElasticContactForce2 = 0.0
 
double mUnbondedNormalElasticConstant = 0.0
 
double mUnbondedTangentialElasticConstant = 0.0
 
double mUnbondedViscoDampingLocalContactForce [3] = {0.0}
 
double mBondedViscoDampingLocalContactForce [3] = {0.0}
 
double mBondedScalingFactor [3] = {0.0}
 
double mUnbondedEquivViscoDampCoeffTangential = 0.0
 
double mUnbondedEquivViscoDampCoeffNormal = 0.0
 
double mInitialIndentationForBondedPart = 0.0
 
double mAccumulatedBondedTangentialLocalDisplacement [2] = {0.0}
 
double mBondedLocalContactNormalTorque [3] = {0.0}
 
double mBondedLocalContactTangentTorque [3] = {0.0}
 
double mKn
 
double mKt
 

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)
 
- Protected Attributes inherited from Kratos::DEMContinuumConstitutiveLaw
Properties::Pointer mpProperties
 

Constructor & Destructor Documentation

◆ DEM_parallel_bond()

Kratos::DEM_parallel_bond::DEM_parallel_bond ( )
inline

◆ ~DEM_parallel_bond()

Kratos::DEM_parallel_bond::~DEM_parallel_bond ( )
inline

Member Function Documentation

◆ AddContributionOfShearStrainParallelToBond()

void Kratos::DEM_parallel_bond::AddContributionOfShearStrainParallelToBond ( double  OldLocalElasticContactForce[3],
double  LocalElasticExtraContactForce[3],
array_1d< double, 3 > &  OldElasticExtraContactForce,
double  LocalCoordSystem[3][3],
const double  kt_el,
const double  calculation_area,
SphericContinuumParticle element1,
SphericContinuumParticle element2 
)

◆ CalculateContactArea() [1/2]

void Kratos::DEM_parallel_bond::CalculateContactArea ( double  radius,
double  other_radius,
double calculation_area 
)
overridevirtual

◆ CalculateContactArea() [2/2]

double Kratos::DEM_parallel_bond::CalculateContactArea ( double  radius,
double  other_radius,
Vector v 
)
overridevirtual

◆ CalculateElasticConstants()

void Kratos::DEM_parallel_bond::CalculateElasticConstants ( double kn_el,
double kt_el,
double  initial_dist,
double  equiv_young,
double  equiv_poisson,
double  calculation_area,
SphericContinuumParticle element1,
SphericContinuumParticle element2,
double  indentation 
)
overridevirtual

◆ CalculateForces()

void Kratos::DEM_parallel_bond::CalculateForces ( const ProcessInfo r_process_info,
double  OldLocalElasticContactForce[3],
double  LocalElasticContactForce[3],
double  LocalElasticExtraContactForce[3],
double  LocalCoordSystem[3][3],
double  LocalDeltDisp[3],
const double  kn_el,
const double  kt_el,
double contact_sigma,
double contact_tau,
double failure_criterion_state,
double  equiv_young,
double  equiv_shear,
double  indentation,
double  calculation_area,
double acumulated_damage,
SphericContinuumParticle element1,
SphericContinuumParticle element2,
int  i_neighbour_count,
int  time_steps,
bool sliding,
double equiv_visco_damp_coeff_normal,
double equiv_visco_damp_coeff_tangential,
double  LocalRelVel[3],
double  ViscoDampingLocalContactForce[3] 
)
overridevirtual

◆ CalculateMoments()

void Kratos::DEM_parallel_bond::CalculateMoments ( SphericContinuumParticle element,
SphericContinuumParticle neighbor,
double  equiv_young,
double  distance,
double  calculation_area,
double  LocalCoordSystem[3][3],
double  ElasticLocalRotationalMoment[3],
double  ViscoLocalRotationalMoment[3],
double  equiv_poisson,
double  indentation,
double  LocalElasticContactForce[3],
double  normalLocalContactForce,
double  GlobalElasticContactForces[3],
double  LocalCoordSystem_2[3],
const int  i_neighbor_count 
)
overridevirtual

◆ CalculateNormalForces()

void Kratos::DEM_parallel_bond::CalculateNormalForces ( double  LocalElasticContactForce[3],
const double  kn_el,
double  equiv_young,
double  indentation,
double  calculation_area,
double acumulated_damage,
SphericContinuumParticle element1,
SphericContinuumParticle element2,
int  i_neighbour_count,
int  time_steps,
const ProcessInfo r_process_info,
double contact_sigma 
)

◆ CalculateTangentialForces()

void Kratos::DEM_parallel_bond::CalculateTangentialForces ( double  OldLocalElasticContactForce[3],
double  LocalElasticContactForce[3],
double  LocalElasticExtraContactForce[3],
double  ViscoDampingLocalContactForce[3],
double  LocalCoordSystem[3][3],
double  LocalDeltDisp[3],
double  LocalRelVel[3],
const double  kt_el,
const double  equiv_shear,
double contact_tau,
double  indentation,
double  calculation_area,
double failure_criterion_state,
SphericContinuumParticle element1,
SphericContinuumParticle element2,
int  i_neighbour_count,
bool sliding,
const ProcessInfo r_process_info 
)
virtual

◆ CalculateUnbondedViscoDampingForce()

void Kratos::DEM_parallel_bond::CalculateUnbondedViscoDampingForce ( double  LocalRelVel[3],
double  UnbondedViscoDampingLocalContactForce[3],
SphericParticle *const  element1,
SphericParticle *const  element2 
)
virtual

◆ CalculateViscoDamping()

void Kratos::DEM_parallel_bond::CalculateViscoDamping ( double  LocalRelVel[3],
double  ViscoDampingLocalContactForce[3],
double  indentation,
double  equiv_visco_damp_coeff_normal,
double  equiv_visco_damp_coeff_tangential,
bool sliding,
int  failure_id,
int  i_neighbour_count,
SphericContinuumParticle element1,
SphericContinuumParticle element2 
)

◆ CalculateViscoDampingCoeff()

void Kratos::DEM_parallel_bond::CalculateViscoDampingCoeff ( double equiv_visco_damp_coeff_normal,
double equiv_visco_damp_coeff_tangential,
SphericContinuumParticle element1,
SphericContinuumParticle element2,
const double  kn_el,
const double  kt_el 
)
overridevirtual

◆ Check()

void Kratos::DEM_parallel_bond::Check ( Properties::Pointer  pProp) const
overridevirtual

◆ CheckFailure()

void Kratos::DEM_parallel_bond::CheckFailure ( const int  i_neighbour_count,
SphericContinuumParticle element1,
SphericContinuumParticle element2,
double contact_sigma,
double contact_tau,
double  LocalElasticContactForce[3],
double  ViscoDampingLocalContactForce[3],
double  ElasticLocalRotationalMoment[3],
double  ViscoLocalRotationalMoment[3] 
)
overridevirtual

◆ Clone()

DEMContinuumConstitutiveLaw::Pointer Kratos::DEM_parallel_bond::Clone ( ) const
overridevirtual

◆ ComputeNormalUnbondedForce()

double Kratos::DEM_parallel_bond::ComputeNormalUnbondedForce ( double  unbonded_indentation)
virtual

◆ ComputeParticleRotationalMoments()

void Kratos::DEM_parallel_bond::ComputeParticleRotationalMoments ( SphericContinuumParticle element,
SphericContinuumParticle neighbor,
double  equiv_young,
double  distance,
double  calculation_area,
double  LocalCoordSystem[3][3],
double  ElasticLocalRotationalMoment[3],
double  ViscoLocalRotationalMoment[3],
double  equiv_poisson,
double  indentation,
double  LocalElasticContactForce[3] 
)
overridevirtual

◆ GetContactArea()

void Kratos::DEM_parallel_bond::GetContactArea ( const double  radius,
const double  other_radius,
const Vector vector_of_initial_areas,
const int  neighbour_position,
double calculation_area 
)
overridevirtual

◆ GetTypeOfLaw()

std::string Kratos::DEM_parallel_bond::GetTypeOfLaw ( )
overridevirtual

◆ GetYoungModulusForComputingRotationalMoments()

double Kratos::DEM_parallel_bond::GetYoungModulusForComputingRotationalMoments ( const double equiv_young)
virtual

◆ InitializeContact()

void Kratos::DEM_parallel_bond::InitializeContact ( SphericParticle *const  element1,
SphericParticle *const  element2,
const double  indentation 
)
virtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::DEM_parallel_bond::KRATOS_CLASS_POINTER_DEFINITION ( DEM_parallel_bond  )

◆ LocalMaxSearchDistance()

double Kratos::DEM_parallel_bond::LocalMaxSearchDistance ( const int  i,
SphericContinuumParticle element1,
SphericContinuumParticle element2 
)
overridevirtual

◆ TransferParametersToProperties()

void Kratos::DEM_parallel_bond::TransferParametersToProperties ( const Parameters parameters,
Properties::Pointer  pProp 
)
overridevirtual

Member Data Documentation

◆ mAccumulatedBondedTangentialLocalDisplacement

double Kratos::DEM_parallel_bond::mAccumulatedBondedTangentialLocalDisplacement[2] = {0.0}

◆ mBondedLocalContactNormalTorque

double Kratos::DEM_parallel_bond::mBondedLocalContactNormalTorque[3] = {0.0}

◆ mBondedLocalContactTangentTorque

double Kratos::DEM_parallel_bond::mBondedLocalContactTangentTorque[3] = {0.0}

◆ mBondedScalingFactor

double Kratos::DEM_parallel_bond::mBondedScalingFactor[3] = {0.0}

◆ mBondedViscoDampingLocalContactForce

double Kratos::DEM_parallel_bond::mBondedViscoDampingLocalContactForce[3] = {0.0}

◆ mInitialIndentationForBondedPart

double Kratos::DEM_parallel_bond::mInitialIndentationForBondedPart = 0.0

◆ mKn

double Kratos::DEM_parallel_bond::mKn

◆ mKt

double Kratos::DEM_parallel_bond::mKt

◆ mUnbondedEquivViscoDampCoeffNormal

double Kratos::DEM_parallel_bond::mUnbondedEquivViscoDampCoeffNormal = 0.0

◆ mUnbondedEquivViscoDampCoeffTangential

double Kratos::DEM_parallel_bond::mUnbondedEquivViscoDampCoeffTangential = 0.0

◆ mUnbondedLocalElasticContactForce2

double Kratos::DEM_parallel_bond::mUnbondedLocalElasticContactForce2 = 0.0

◆ mUnbondedNormalElasticConstant

double Kratos::DEM_parallel_bond::mUnbondedNormalElasticConstant = 0.0

◆ mUnbondedTangentialElasticConstant

double Kratos::DEM_parallel_bond::mUnbondedTangentialElasticConstant = 0.0

◆ mUnbondedViscoDampingLocalContactForce

double Kratos::DEM_parallel_bond::mUnbondedViscoDampingLocalContactForce[3] = {0.0}

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