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 | Protected Attributes | Friends | List of all members
Kratos::HydrodynamicInteractionLaw Class Reference

#include <hydrodynamic_interaction_law.h>

Inheritance diagram for Kratos::HydrodynamicInteractionLaw:
Collaboration diagram for Kratos::HydrodynamicInteractionLaw:

Public Types

typedef Node NodeType
 
- 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
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (HydrodynamicInteractionLaw)
 
 HydrodynamicInteractionLaw ()
 
 HydrodynamicInteractionLaw (Properties::Pointer pProp, Parameters &r_hydrodynamic_parameters)
 
 HydrodynamicInteractionLaw (const HydrodynamicInteractionLaw &rHydrodynamicInteractionLaw)
 
void SetBuoyancyLaw (const BuoyancyLaw &r_law)
 
void SetDragLaw (const DragLaw &r_law)
 
void SetInviscidForceLaw (const InviscidForceLaw &r_law)
 
void SetHistoryForceLaw (const HistoryForceLaw &r_law)
 
void SetVorticityInducedLiftLaw (const VorticityInducedLiftLaw &r_law)
 
void SetRotationInducedLiftLaw (const RotationInducedLiftLaw &r_law)
 
void SetSteadyViscousTorqueLaw (const SteadyViscousTorqueLaw &r_law)
 
virtual void Initialize (const ProcessInfo &r_process_info)
 
virtual void SetHydrodynamicInteractionLawInProperties (Properties::Pointer pProp, bool verbose=true) const
 
virtual std::string GetTypeOfLaw ()
 
virtual ~HydrodynamicInteractionLaw ()
 Destructor. More...
 
HydrodynamicInteractionLaw::Pointer Clone () const
 
virtual BuoyancyLaw::Pointer CloneBuoyancyLaw () const
 
virtual DragLaw::Pointer CloneDragLaw () const
 
virtual InviscidForceLaw::Pointer CloneInviscidForceLaw () const
 
virtual HistoryForceLaw::Pointer CloneHistoryForceLaw () const
 
virtual VorticityInducedLiftLaw::Pointer CloneVorticityInducedLiftLaw () const
 
virtual RotationInducedLiftLaw::Pointer CloneRotationInducedLiftLaw () const
 
virtual SteadyViscousTorqueLaw::Pointer CloneSteadyViscousTorqueLaw () const
 
double ComputeParticleReynoldsNumber (const double particle_radius, const double fluid_kinematic_viscosity, const double modulus_of_minus_slip_velocity)
 
virtual void ComputeBuoyancyForce (Geometry< Node > &r_geometry, const double fluid_density, const double displaced_volume, const array_1d< double, 3 > &body_force, array_1d< double, 3 > &buoyancy, const ProcessInfo &r_current_process_info)
 
void ComputeDragForce (SphericParticle *p_particle, double particle_radius, double fluid_density, double fluid_kinematic_viscosity, array_1d< double, 3 > &minus_slip_velocity, array_1d< double, 3 > &drag_force, const ProcessInfo &r_current_process_info)
 
virtual void ComputeInviscidForce (Geometry< Node > &r_geometry, const double fluid_density, const double displaced_volume, array_1d< double, 3 > &virtual_mass_plus_undisturbed_flow_force, const ProcessInfo &r_current_process_info)
 
virtual double GetInviscidAddedMass (Geometry< Node > &r_geometry, double fluid_density, const ProcessInfo &r_current_process_info)
 
virtual void ComputeHistoryForce (Geometry< Node > &r_geometry, double particle_radius, double fluid_density, double fluid_kinematic_viscosity, array_1d< double, 3 > &minus_slip_velocity, array_1d< double, 3 > &drag_force, const ProcessInfo &r_current_process_info)
 
virtual double GetHistoryForceAddedMass (Geometry< Node > &r_geometry, const ProcessInfo &r_current_process_info)
 
virtual void ComputeVorticityInducedLift (Geometry< Node > &r_geometry, double particle_radius, double fluid_density, double fluid_kinematic_viscosity, array_1d< double, 3 > &minus_slip_velocity, array_1d< double, 3 > &vorticity_induced_lift, const ProcessInfo &r_current_process_info)
 
virtual void ComputeRotationInducedLift (Geometry< Node > &r_geometry, double particle_radius, double fluid_density, double fluid_kinematic_viscosity, array_1d< double, 3 > &minus_slip_velocity, array_1d< double, 3 > &rotation_induced_lift, const ProcessInfo &r_current_process_info)
 
virtual void ComputeSteadyViscousTorque (Geometry< Node > &r_geometry, double particle_radius, double fluid_density, double fluid_kinematic_viscosity, array_1d< double, 3 > &minus_slip_velocity, array_1d< double, 3 > &steady_viscous_torque, const ProcessInfo &r_current_process_info)
 
- 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...
 

Protected Attributes

BuoyancyLaw::Pointer mpBuoyancyLaw
 
DragLaw::Pointer mpDragLaw
 
InviscidForceLaw::Pointer mpInviscidForceLaw
 
HistoryForceLaw::Pointer mpHistoryForceLaw
 
VorticityInducedLiftLaw::Pointer mpVorticityInducedLiftLaw
 
RotationInducedLiftLaw::Pointer mpRotationInducedLiftLaw
 
SteadyViscousTorqueLaw::Pointer mpSteadyViscousTorqueLaw
 

Friends

class Serializer
 

Additional Inherited Members

- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Member Typedef Documentation

◆ NodeType

Constructor & Destructor Documentation

◆ HydrodynamicInteractionLaw() [1/3]

Kratos::HydrodynamicInteractionLaw::HydrodynamicInteractionLaw ( )
inline

◆ HydrodynamicInteractionLaw() [2/3]

Kratos::HydrodynamicInteractionLaw::HydrodynamicInteractionLaw ( Properties::Pointer  pProp,
Parameters r_hydrodynamic_parameters 
)

◆ HydrodynamicInteractionLaw() [3/3]

Kratos::HydrodynamicInteractionLaw::HydrodynamicInteractionLaw ( const HydrodynamicInteractionLaw rHydrodynamicInteractionLaw)

◆ ~HydrodynamicInteractionLaw()

Kratos::HydrodynamicInteractionLaw::~HydrodynamicInteractionLaw ( )
virtual

Destructor.

Member Function Documentation

◆ Clone()

HydrodynamicInteractionLaw::Pointer Kratos::HydrodynamicInteractionLaw::Clone ( ) const

◆ CloneBuoyancyLaw()

BuoyancyLaw::Pointer Kratos::HydrodynamicInteractionLaw::CloneBuoyancyLaw ( ) const
virtual

◆ CloneDragLaw()

DragLaw::Pointer Kratos::HydrodynamicInteractionLaw::CloneDragLaw ( ) const
virtual

◆ CloneHistoryForceLaw()

HistoryForceLaw::Pointer Kratos::HydrodynamicInteractionLaw::CloneHistoryForceLaw ( ) const
virtual

◆ CloneInviscidForceLaw()

InviscidForceLaw::Pointer Kratos::HydrodynamicInteractionLaw::CloneInviscidForceLaw ( ) const
virtual

◆ CloneRotationInducedLiftLaw()

RotationInducedLiftLaw::Pointer Kratos::HydrodynamicInteractionLaw::CloneRotationInducedLiftLaw ( ) const
virtual

◆ CloneSteadyViscousTorqueLaw()

SteadyViscousTorqueLaw::Pointer Kratos::HydrodynamicInteractionLaw::CloneSteadyViscousTorqueLaw ( ) const
virtual

◆ CloneVorticityInducedLiftLaw()

VorticityInducedLiftLaw::Pointer Kratos::HydrodynamicInteractionLaw::CloneVorticityInducedLiftLaw ( ) const
virtual

◆ ComputeBuoyancyForce()

void Kratos::HydrodynamicInteractionLaw::ComputeBuoyancyForce ( Geometry< Node > &  r_geometry,
const double  fluid_density,
const double  displaced_volume,
const array_1d< double, 3 > &  body_force,
array_1d< double, 3 > &  buoyancy,
const ProcessInfo r_current_process_info 
)
virtual

◆ ComputeDragForce()

void Kratos::HydrodynamicInteractionLaw::ComputeDragForce ( SphericParticle p_particle,
double  particle_radius,
double  fluid_density,
double  fluid_kinematic_viscosity,
array_1d< double, 3 > &  minus_slip_velocity,
array_1d< double, 3 > &  drag_force,
const ProcessInfo r_current_process_info 
)

◆ ComputeHistoryForce()

void Kratos::HydrodynamicInteractionLaw::ComputeHistoryForce ( Geometry< Node > &  r_geometry,
double  particle_radius,
double  fluid_density,
double  fluid_kinematic_viscosity,
array_1d< double, 3 > &  minus_slip_velocity,
array_1d< double, 3 > &  drag_force,
const ProcessInfo r_current_process_info 
)
virtual

◆ ComputeInviscidForce()

void Kratos::HydrodynamicInteractionLaw::ComputeInviscidForce ( Geometry< Node > &  r_geometry,
const double  fluid_density,
const double  displaced_volume,
array_1d< double, 3 > &  virtual_mass_plus_undisturbed_flow_force,
const ProcessInfo r_current_process_info 
)
virtual

◆ ComputeParticleReynoldsNumber()

double Kratos::HydrodynamicInteractionLaw::ComputeParticleReynoldsNumber ( const double  particle_radius,
const double  fluid_kinematic_viscosity,
const double  modulus_of_minus_slip_velocity 
)

◆ ComputeRotationInducedLift()

void Kratos::HydrodynamicInteractionLaw::ComputeRotationInducedLift ( Geometry< Node > &  r_geometry,
double  particle_radius,
double  fluid_density,
double  fluid_kinematic_viscosity,
array_1d< double, 3 > &  minus_slip_velocity,
array_1d< double, 3 > &  rotation_induced_lift,
const ProcessInfo r_current_process_info 
)
virtual

◆ ComputeSteadyViscousTorque()

void Kratos::HydrodynamicInteractionLaw::ComputeSteadyViscousTorque ( Geometry< Node > &  r_geometry,
double  particle_radius,
double  fluid_density,
double  fluid_kinematic_viscosity,
array_1d< double, 3 > &  minus_slip_velocity,
array_1d< double, 3 > &  steady_viscous_torque,
const ProcessInfo r_current_process_info 
)
virtual

◆ ComputeVorticityInducedLift()

void Kratos::HydrodynamicInteractionLaw::ComputeVorticityInducedLift ( Geometry< Node > &  r_geometry,
double  particle_radius,
double  fluid_density,
double  fluid_kinematic_viscosity,
array_1d< double, 3 > &  minus_slip_velocity,
array_1d< double, 3 > &  vorticity_induced_lift,
const ProcessInfo r_current_process_info 
)
virtual

◆ GetHistoryForceAddedMass()

double Kratos::HydrodynamicInteractionLaw::GetHistoryForceAddedMass ( Geometry< Node > &  r_geometry,
const ProcessInfo r_current_process_info 
)
virtual

◆ GetInviscidAddedMass()

double Kratos::HydrodynamicInteractionLaw::GetInviscidAddedMass ( Geometry< Node > &  r_geometry,
double  fluid_density,
const ProcessInfo r_current_process_info 
)
virtual

◆ GetTypeOfLaw()

std::string Kratos::HydrodynamicInteractionLaw::GetTypeOfLaw ( )
virtual

◆ Initialize()

void Kratos::HydrodynamicInteractionLaw::Initialize ( const ProcessInfo r_process_info)
virtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::HydrodynamicInteractionLaw::KRATOS_CLASS_POINTER_DEFINITION ( HydrodynamicInteractionLaw  )

◆ SetBuoyancyLaw()

void Kratos::HydrodynamicInteractionLaw::SetBuoyancyLaw ( const BuoyancyLaw r_law)
inline

◆ SetDragLaw()

void Kratos::HydrodynamicInteractionLaw::SetDragLaw ( const DragLaw r_law)
inline

◆ SetHistoryForceLaw()

void Kratos::HydrodynamicInteractionLaw::SetHistoryForceLaw ( const HistoryForceLaw r_law)
inline

◆ SetHydrodynamicInteractionLawInProperties()

void Kratos::HydrodynamicInteractionLaw::SetHydrodynamicInteractionLawInProperties ( Properties::Pointer  pProp,
bool  verbose = true 
) const
virtual

◆ SetInviscidForceLaw()

void Kratos::HydrodynamicInteractionLaw::SetInviscidForceLaw ( const InviscidForceLaw r_law)
inline

◆ SetRotationInducedLiftLaw()

void Kratos::HydrodynamicInteractionLaw::SetRotationInducedLiftLaw ( const RotationInducedLiftLaw r_law)
inline

◆ SetSteadyViscousTorqueLaw()

void Kratos::HydrodynamicInteractionLaw::SetSteadyViscousTorqueLaw ( const SteadyViscousTorqueLaw r_law)
inline

◆ SetVorticityInducedLiftLaw()

void Kratos::HydrodynamicInteractionLaw::SetVorticityInducedLiftLaw ( const VorticityInducedLiftLaw r_law)
inline

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

Member Data Documentation

◆ mpBuoyancyLaw

BuoyancyLaw::Pointer Kratos::HydrodynamicInteractionLaw::mpBuoyancyLaw
protected

◆ mpDragLaw

DragLaw::Pointer Kratos::HydrodynamicInteractionLaw::mpDragLaw
protected

◆ mpHistoryForceLaw

HistoryForceLaw::Pointer Kratos::HydrodynamicInteractionLaw::mpHistoryForceLaw
protected

◆ mpInviscidForceLaw

InviscidForceLaw::Pointer Kratos::HydrodynamicInteractionLaw::mpInviscidForceLaw
protected

◆ mpRotationInducedLiftLaw

RotationInducedLiftLaw::Pointer Kratos::HydrodynamicInteractionLaw::mpRotationInducedLiftLaw
protected

◆ mpSteadyViscousTorqueLaw

SteadyViscousTorqueLaw::Pointer Kratos::HydrodynamicInteractionLaw::mpSteadyViscousTorqueLaw
protected

◆ mpVorticityInducedLiftLaw

VorticityInducedLiftLaw::Pointer Kratos::HydrodynamicInteractionLaw::mpVorticityInducedLiftLaw
protected

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