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 | List of all members
Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver > Class Template Reference

#include <edgebased_levelset.h>

Collaboration diagram for Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >:

Public Types

typedef EdgesStructureType< TDim > CSR_Tuple
 
typedef vector< CSR_TupleEdgesVectorType
 
typedef vector< unsigned intIndicesVectorType
 
typedef vector< array_1d< double, TDim > > CalcVectorType
 
typedef vector< doubleValuesVectorType
 
typedef TSparseSpace::MatrixType TSystemMatrixType
 
typedef TSparseSpace::VectorType TSystemVectorType
 
typedef std::size_t SizeType
 

Public Member Functions

 EdgeBasedLevelSet (MatrixContainer &mr_matrix_container, ModelPart &mr_model_part, const double viscosity, const double density, bool use_mass_correction, double stabdt_pressure_factor, double stabdt_convection_factor, double tau2_factor, bool assume_constant_dp)
 
 ~EdgeBasedLevelSet ()
 
void Initialize ()
 
void SetShockCapturingCoefficient (double coeff)
 
double ComputeTimeStep (const double CFLNumber, const double MaxDt)
 
void ApplySmagorinsky (double MolecularViscosity, double Cs)
 
void UpdateFixedVelocityValues ()
 
void SolveStep1 ()
 
void CalculateRHS (const CalcVectorType &vel, const ValuesVectorType &pressure, const CalcVectorType &convective_velocity, CalcVectorType &rhs, ValuesVectorType &diag_stiffness)
 
void SolveStep2 (typename TLinearSolver::Pointer pLinearSolver)
 
void SolveStep3 ()
 
void ApplyVelocityBC (CalcVectorType &VelArray)
 
void ExtrapolateValues (unsigned int extrapolation_layers)
 
void ChangeSignToDistance ()
 
void MarkNodesByDistance (double min, double max)
 
void SaveScalarVariableToOldStep (Variable< double > &rVar)
 
void MarkExternalAndMixedNodes ()
 
void MarkInternalAndMixedNodes ()
 
void MarkInternalNodes ()
 
void CalculateNormals (ModelPart::ConditionsContainerType &rConditions)
 
void Clear ()
 
void ConvectDistance ()
 
void ReduceTimeStep (ModelPart &rModelPart, double NewTime)
 
bool CheckDistanceConvection ()
 
void ActivateWallResistance (double Ywall)
 
double ComputeVolumeVariation ()
 
double ComputeWetVolume ()
 
void DiscreteVolumeCorrection (double expected_volume, double measured_volume)
 
void PushFreeSurface ()
 
double ComputeBoundedTimeStep (const double CFLNumber, const double MaxDt)
 
void CalculatePorousResistanceLaw (unsigned int res_law)
 

Member Typedef Documentation

◆ CalcVectorType

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef vector<array_1d<double, TDim> > Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::CalcVectorType

◆ CSR_Tuple

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef EdgesStructureType<TDim> Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::CSR_Tuple

◆ EdgesVectorType

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef vector<CSR_Tuple> Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::EdgesVectorType

◆ IndicesVectorType

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef vector<unsigned int> Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::IndicesVectorType

◆ SizeType

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef std::size_t Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::SizeType

◆ TSystemMatrixType

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef TSparseSpace::MatrixType Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::TSystemMatrixType

◆ TSystemVectorType

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef TSparseSpace::VectorType Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::TSystemVectorType

◆ ValuesVectorType

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
typedef vector<double> Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ValuesVectorType

Constructor & Destructor Documentation

◆ EdgeBasedLevelSet()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::EdgeBasedLevelSet ( MatrixContainer mr_matrix_container,
ModelPart mr_model_part,
const double  viscosity,
const double  density,
bool  use_mass_correction,
double  stabdt_pressure_factor,
double  stabdt_convection_factor,
double  tau2_factor,
bool  assume_constant_dp 
)
inline

◆ ~EdgeBasedLevelSet()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::~EdgeBasedLevelSet ( )
inline

Member Function Documentation

◆ ActivateWallResistance()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ActivateWallResistance ( double  Ywall)
inline

◆ ApplySmagorinsky()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ApplySmagorinsky ( double  MolecularViscosity,
double  Cs 
)
inline

◆ ApplyVelocityBC()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ApplyVelocityBC ( CalcVectorType VelArray)
inline

◆ CalculateNormals()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::CalculateNormals ( ModelPart::ConditionsContainerType rConditions)
inline

◆ CalculatePorousResistanceLaw()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::CalculatePorousResistanceLaw ( unsigned int  res_law)
inline

◆ CalculateRHS()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::CalculateRHS ( const CalcVectorType vel,
const ValuesVectorType pressure,
const CalcVectorType convective_velocity,
CalcVectorType rhs,
ValuesVectorType diag_stiffness 
)
inline

◆ ChangeSignToDistance()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ChangeSignToDistance ( )
inline

◆ CheckDistanceConvection()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
bool Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::CheckDistanceConvection ( )
inline

◆ Clear()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::Clear ( )
inline

◆ ComputeBoundedTimeStep()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
double Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ComputeBoundedTimeStep ( const double  CFLNumber,
const double  MaxDt 
)
inline

◆ ComputeTimeStep()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
double Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ComputeTimeStep ( const double  CFLNumber,
const double  MaxDt 
)
inline

◆ ComputeVolumeVariation()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
double Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ComputeVolumeVariation ( )
inline

◆ ComputeWetVolume()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
double Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ComputeWetVolume ( )
inline

◆ ConvectDistance()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ConvectDistance ( )
inline

◆ DiscreteVolumeCorrection()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::DiscreteVolumeCorrection ( double  expected_volume,
double  measured_volume 
)
inline

◆ ExtrapolateValues()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ExtrapolateValues ( unsigned int  extrapolation_layers)
inline

◆ Initialize()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::Initialize ( void  )
inline

◆ MarkExternalAndMixedNodes()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::MarkExternalAndMixedNodes ( )
inline

◆ MarkInternalAndMixedNodes()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::MarkInternalAndMixedNodes ( )
inline

◆ MarkInternalNodes()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::MarkInternalNodes ( )
inline

◆ MarkNodesByDistance()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::MarkNodesByDistance ( double  min,
double  max 
)
inline

◆ PushFreeSurface()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::PushFreeSurface ( )
inline

◆ ReduceTimeStep()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::ReduceTimeStep ( ModelPart rModelPart,
double  NewTime 
)
inline

◆ SaveScalarVariableToOldStep()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::SaveScalarVariableToOldStep ( Variable< double > &  rVar)
inline

◆ SetShockCapturingCoefficient()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::SetShockCapturingCoefficient ( double  coeff)
inline

◆ SolveStep1()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::SolveStep1 ( )
inline

◆ SolveStep2()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::SolveStep2 ( typename TLinearSolver::Pointer  pLinearSolver)
inline

◆ SolveStep3()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::SolveStep3 ( )
inline

◆ UpdateFixedVelocityValues()

template<unsigned int TDim, class MatrixContainer , class TSparseSpace , class TLinearSolver >
void Kratos::EdgeBasedLevelSet< TDim, MatrixContainer, TSparseSpace, TLinearSolver >::UpdateFixedVelocityValues ( )
inline

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