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.
two_fluid_navier_stokes_alpha_method_data.h
Go to the documentation of this file.
1  // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Uxue Chasco
11 //
12 
13 
14 #if !defined(KRATOS_TWO_FLUID_NAVIER_STOKES_DATA_ALPHA_METHOD_H)
15 #define KRATOS_TWO_FLUID_NAVIER_STOKES_DATA_ALPHA_METHOD_H
16 
18 
23 
24 namespace Kratos {
25 
28 
31 
32 template< size_t TDim, size_t TNumNodes >
33 class TwoFluidNavierStokesAlphaMethodData : public FluidElementData<TDim,TNumNodes, true>
34 {
35 public:
36 
39 
47 
51 
56 
59 
62 
64 
69 
71 
72 double Density;
74 double DeltaTime; // Time increment
75 double DynamicTau; // Dynamic tau considered in ASGS stabilization coefficients
76 double VolumeErrorRate; // Mass loss time rate (m^3/s) to be used as source term in the mass conservation equation
79 
80 // Auxiliary containers for the symbolically-generated matrices
81 BoundedMatrix<double,TNumNodes*(TDim+1),TNumNodes*(TDim+1)> lhs;
82 array_1d<double,TNumNodes*(TDim+1)> rhs;
83 BoundedMatrix<double, TNumNodes*(TDim + 1), TNumNodes> V;
84 BoundedMatrix<double, TNumNodes, TNumNodes*(TDim + 1)> H;
87 
88 double ElementSize;
89 
94 
97 
100 
103 
106 unsigned int NumberOfDivisions;
107 
108 
112 
113 void Initialize(const Element& rElement, const ProcessInfo& rProcessInfo) override
114 {
115  // Base class Initialize manages constitutive law parameters
117 
118  const Geometry< Node >& r_geometry = rElement.GetGeometry();
119 
120  this->FillFromHistoricalNodalData(Velocity,VELOCITY,r_geometry);
121  this->FillFromHistoricalNodalData(Velocity_OldStep1,VELOCITY,r_geometry,1);
122  this->FillFromHistoricalNodalData(Pressure,PRESSURE,r_geometry);
123 
124  this->FillFromHistoricalNodalData(Distance, DISTANCE, r_geometry);
125 
126  this->FillFromHistoricalNodalData(MeshVelocity,MESH_VELOCITY,r_geometry);
127  this->FillFromHistoricalNodalData(MeshVelocityOldStep,MESH_VELOCITY,r_geometry,1);
128 
129  this->FillFromHistoricalNodalData(BodyForce,BODY_FORCE,r_geometry);
130  this->FillFromHistoricalNodalData(BodyForce_OldStep1,BODY_FORCE,r_geometry,1);
131 
132  this->FillFromHistoricalNodalData(NodalDensity, DENSITY, r_geometry);
133  this->FillFromHistoricalNodalData(NodalDensityOldStep, DENSITY, r_geometry, 1);
134  this->FillFromHistoricalNodalData(NodalDynamicViscosity, DYNAMIC_VISCOSITY, r_geometry);
135  this->FillFromHistoricalNodalData(NodalDynamicViscosityOldStep, DYNAMIC_VISCOSITY, r_geometry, 1);
136  this->FillFromNonHistoricalNodalData(AccelerationAlphaMethod,ACCELERATION,r_geometry);
137  this->FillFromProcessInfo(DeltaTime,DELTA_TIME,rProcessInfo);
138  this->FillFromProcessInfo(DynamicTau,DYNAMIC_TAU,rProcessInfo);
139  this->FillFromProcessInfo(MaxSpectralRadius,SPECTRAL_RADIUS_LIMIT,rProcessInfo);
140 
141 
142  noalias(lhs) = ZeroMatrix(TNumNodes*(TDim+1),TNumNodes*(TDim+1));
143  noalias(rhs) = ZeroVector(TNumNodes*(TDim+1));
144  noalias(V) = ZeroMatrix(TNumNodes*(TDim + 1), TNumNodes);
145  noalias(H) = ZeroMatrix(TNumNodes, TNumNodes*(TDim + 1));
146  noalias(Kee) = ZeroMatrix(TNumNodes, TNumNodes);
147  noalias(rhs_ee) = ZeroVector(TNumNodes);
148 
149  NumPositiveNodes = 0;
150  NumNegativeNodes = 0;
151 
152  for (unsigned int i = 0; i < TNumNodes; i++){
153  if(Distance[i] > 0)
155  else
157  }
158 
159  ArtificialDynamicViscosity = r_geometry.Has(ARTIFICIAL_DYNAMIC_VISCOSITY) ? r_geometry.GetValue(ARTIFICIAL_DYNAMIC_VISCOSITY) : 0.0;
160 
161  // In here we calculate the volume error temporary ratio (note that the input value is a relative measure of the volume loss)
162  // Also note that we do consider time varying time step but a constant theta (we incur in a small error when switching from BE to CN)
163  // Note as well that there is a minus sign (this comes from the divergence sign)
164  if (IsCut()) {
165  // Get the previous time increment. Note that we check its value in case the previous ProcessInfo is empty (e.g. first step)
166  double previous_dt = rProcessInfo.GetPreviousTimeStepInfo()[DELTA_TIME];
167  if (previous_dt < 1.0e-12) {
168  previous_dt = rProcessInfo[DELTA_TIME];
169  }
170  // Get the absolute volume error from the ProcessInfo and calculate the time rate
171  this->FillFromProcessInfo(VolumeErrorRate,VOLUME_ERROR,rProcessInfo);
172  VolumeErrorRate /= -previous_dt;
173  } else {
174  VolumeErrorRate = 0.0;
175  }
176 
177 }
178 
180  unsigned int IntegrationPointIndex,
181  double NewWeight,
182  const MatrixRowType& rN,
183  const BoundedMatrix<double, TNumNodes, TDim>& rDN_DX) override
184 {
188 }
189 
191  unsigned int IntegrationPointIndex,
192  double NewWeight,
193  const MatrixRowType& rN,
195  const MatrixRowType& rNenr,
197 {
200  noalias(this->Nenr) = rNenr;
201  noalias(this->DN_DXenr) = rDN_DXenr;
203 }
204 
205 static int Check(const Element& rElement, const ProcessInfo& rProcessInfo)
206 {
207  const Geometry< Node >& r_geometry = rElement.GetGeometry();
208 
209  for (unsigned int i = 0; i < TNumNodes; i++)
210  {
211  KRATOS_CHECK_VARIABLE_IN_NODAL_DATA(VELOCITY,r_geometry[i]);
212  KRATOS_CHECK_VARIABLE_IN_NODAL_DATA(DISTANCE, r_geometry[i]);
213  KRATOS_CHECK_VARIABLE_IN_NODAL_DATA(MESH_VELOCITY,r_geometry[i]);
214  KRATOS_CHECK_VARIABLE_IN_NODAL_DATA(BODY_FORCE,r_geometry[i]);
215  KRATOS_CHECK_VARIABLE_IN_NODAL_DATA(PRESSURE,r_geometry[i]);
216  }
217 
218  return 0;
219 }
220 
221 bool IsCut() {
222  return (NumPositiveNodes > 0) && (NumNegativeNodes > 0);
223 }
224 
225 bool IsAir() {
226  return (NumPositiveNodes == TNumNodes);
227 }
228 
230  const unsigned int strain_size = 3 * (TDim - 1);
231 
232  if(this->C.size1() != strain_size)
233  this->C.resize(strain_size,strain_size,false);
234  if(this->ShearStress.size() != strain_size)
235  this->ShearStress.resize(strain_size,false);
236 
237  ComputeStrain();
238 
240 
241  const double mu = this->EffectiveViscosity;
242  const double c1 = 2.0*mu;
243  const double c2 = mu;
244  this->C.clear();
246  Vector& stress = this->ShearStress;
247  Vector& strain = this->StrainRate;
248 
250  this->C = c_mat;
251 
252  if constexpr (TDim == 2)
253  {
254  const double trace = strain[0] + strain[1];
255  const double volumetric_part = trace/2.0; // Note: this should be small for an incompressible fluid (it is basically the incompressibility error)
256 
257  stress[0] = c1 * (strain[0] - volumetric_part);
258  stress[1] = c1 * (strain[1] - volumetric_part);
259  stress[2] = c2 * strain[2];
260  }
261 
262  else if constexpr (TDim == 3)
263  {
264  const double trace = strain[0] + strain[1] + strain[2];
265  const double volumetric_part = trace/3.0; // Note: this should be small for an incompressible fluid (it is basically the incompressibility error)
266 
267  stress[0] = c1*(strain[0] - volumetric_part);
268  stress[1] = c1*(strain[1] - volumetric_part);
269  stress[2] = c1*(strain[2] - volumetric_part);
270  stress[3] = c2*strain[3];
271  stress[4] = c2*strain[4];
272  stress[5] = c2*strain[5];
273  }
274 }
275 
277 {
278  const double rho_inf=this->MaxSpectralRadius;
279  const double alpha_f= 1/(rho_inf+1);
282 
283  // Compute strain (B*v)
284  // 3D strain computation
285  if constexpr (TDim == 3)
286  {
287  this->StrainRate[0] = DN(0,0)*v(0,0) + DN(1,0)*v(1,0) + DN(2,0)*v(2,0) + DN(3,0)*v(3,0);
288  this->StrainRate[1] = DN(0,1)*v(0,1) + DN(1,1)*v(1,1) + DN(2,1)*v(2,1) + DN(3,1)*v(3,1);
289  this->StrainRate[2] = DN(0,2)*v(0,2) + DN(1,2)*v(1,2) + DN(2,2)*v(2,2) + DN(3,2)*v(3,2);
290  this->StrainRate[3] = DN(0,0)*v(0,1) + DN(0,1)*v(0,0) + DN(1,0)*v(1,1) + DN(1,1)*v(1,0) + DN(2,0)*v(2,1) + DN(2,1)*v(2,0) + DN(3,0)*v(3,1) + DN(3,1)*v(3,0);
291  this->StrainRate[4] = DN(0,1)*v(0,2) + DN(0,2)*v(0,1) + DN(1,1)*v(1,2) + DN(1,2)*v(1,1) + DN(2,1)*v(2,2) + DN(2,2)*v(2,1) + DN(3,1)*v(3,2) + DN(3,2)*v(3,1);
292  this->StrainRate[5] = DN(0,0)*v(0,2) + DN(0,2)*v(0,0) + DN(1,0)*v(1,2) + DN(1,2)*v(1,0) + DN(2,0)*v(2,2) + DN(2,2)*v(2,0) + DN(3,0)*v(3,2) + DN(3,2)*v(3,0);
293  }
294  // 2D strain computation
295  else if constexpr (TDim == 2)
296  {
297  this->StrainRate[0] = DN(0,0)*v(0,0) + DN(1,0)*v(1,0) + DN(2,0)*v(2,0);
298  this->StrainRate[1] = DN(0,1)*v(0,1) + DN(1,1)*v(1,1) + DN(2,1)*v(2,1);
299  this->StrainRate[2] = DN(0,1)*v(0,0) + DN(0,0)*v(0,1) + DN(1,1)*v(1,0) + DN(1,0)*v(1,1) + DN(2,1)*v(2,0) + DN(2,0)*v(2,1);
300  }
301 }
302 
304 {
305  double strain_rate_norm;
306  Vector& S = this->StrainRate;
307  if constexpr (TDim == 3)
308  {
309  strain_rate_norm = std::sqrt(2.*S[0] * S[0] + 2.*S[1] * S[1] + 2.*S[2] * S[2] +
310  S[3] * S[3] + S[4] * S[4] + S[5] * S[5]);
311  }
312 
313  else if constexpr (TDim == 2)
314  {
315  strain_rate_norm = std::sqrt(2.*S[0] * S[0] + 2.*S[1] * S[1] + S[2] * S[2]);
316  }
317  return strain_rate_norm;
318 }
319 
321 {
322  double dist = 0.0;
323  for (unsigned int i = 0; i < TNumNodes; i++)
324  dist += this->N[i] * Distance[i];
325 
326  int navg = 0;
327  double density = 0.0;
328  for (unsigned int i = 0; i < TNumNodes; i++)
329  {
330  if (dist * Distance[i] > 0.0)
331  {
332  navg += 1;
333  density += NodalDensity[i];
334  }
335  }
336 
337  Density = density / navg;
338 }
339 
341 {
342  double dist = 0.0;
343  for (unsigned int i = 0; i < TNumNodes; i++)
344  dist += this->N[i] * Distance[i];
345 
346  int navg = 0;
347  double dynamic_viscosity = 0.0;
348  for (unsigned int i = 0; i < TNumNodes; i++)
349  {
350  if (dist * Distance[i] > 0.0)
351  {
352  navg += 1;
353  dynamic_viscosity += NodalDynamicViscosity[i];
354  }
355  }
356 
357  DynamicViscosity = dynamic_viscosity / navg;
358  this->EffectiveViscosity = DynamicViscosity + ArtificialDynamicViscosity;
359 }
360 
362 {
363  //TODO: We need to implement this in order to do the explicit template instantiation in the base TwoFluidNavierStokesElement
364  //TODO: Properly implement it (with the required member variables) once we add the Darcy contribution to the Alpha method element
365 }
366 
368 
369 };
370 
372 
374 
375 }
376 
377 #endif
Base class for all Elements.
Definition: element.h:60
static double GradientsElementSize(const BoundedMatrix< double, 3, 2 > &rDN_DX)
Element size based on the shape functions gradients. Triangle element version.
Definition: element_size_calculator.cpp:1456
Base class for data containers used within FluidElement and derived types.
Definition: fluid_element_data.h:37
void FillFromHistoricalNodalData(NodalScalarData &rData, const Variable< double > &rVariable, const Geometry< Node > &rGeometry)
Definition: fluid_element_data.cpp:65
virtual void Initialize(const Element &rElement, const ProcessInfo &rProcessInfo)
Definition: fluid_element_data.cpp:18
void FillFromNonHistoricalNodalData(NodalScalarData &rData, const Variable< double > &rVariable, const Geometry< Node > &rGeometry)
Definition: fluid_element_data.cpp:128
unsigned int IntegrationPointIndex
Definition: fluid_element_data.h:100
ShapeFunctionsType N
Definition: fluid_element_data.h:104
Vector StrainRate
Strain rate (symmetric gradient of velocity) vector in Voigt notation.
Definition: fluid_element_data.h:110
Vector ShearStress
Shear stress vector in Voigt notation.
Definition: fluid_element_data.h:114
virtual void UpdateGeometryValues(unsigned int IntegrationPointIndex, double NewWeight, const MatrixRowType &rN, const ShapeDerivativesType &rDN_DX)
Definition: fluid_element_data.cpp:52
double EffectiveViscosity
Effective viscosity (in dynamic units) produced by the constitutive law.
Definition: fluid_element_data.h:124
ShapeDerivativesType DN_DX
Definition: fluid_element_data.h:106
void FillFromProcessInfo(double &rData, const Variable< double > &rVariable, const ProcessInfo &rProcessInfo)
Definition: fluid_element_data.cpp:153
Matrix C
Constitutive tensor C (expressed as a Matrix).
Definition: fluid_element_data.h:118
static void GetNewtonianConstitutiveMatrix(const double DynamicViscosity, BoundedMatrix< double, VoigtVector2DSize, VoigtVector2DSize > &rConstitutiveMatrix)
Definition: fluid_element_utilities.cpp:58
GeometryType & GetGeometry()
Returns the reference of the geometry.
Definition: geometrical_object.h:158
Geometry base class.
Definition: geometry.h:71
TVariableType::Type & GetValue(const TVariableType &rThisVariable)
Definition: geometry.h:627
bool Has(const Variable< TDataType > &rThisVariable) const
Definition: geometry.h:609
Definition: amatrix_interface.h:41
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
void clear()
Definition: amatrix_interface.h:284
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
ProcessInfo & GetPreviousTimeStepInfo(IndexType StepsBefore=1)
Definition: process_info.h:187
Definition: two_fluid_navier_stokes_alpha_method_data.h:34
ShapeFunctionsType Nenr
Definition: two_fluid_navier_stokes_alpha_method_data.h:101
typename FluidElementData< TDim, TNumNodes, true >::MatrixRowType MatrixRowType
Definition: two_fluid_navier_stokes_alpha_method_data.h:44
void UpdateGeometryValues(unsigned int IntegrationPointIndex, double NewWeight, const MatrixRowType &rN, const BoundedMatrix< double, TNumNodes, TDim > &rDN_DX, const MatrixRowType &rNenr, const BoundedMatrix< double, TNumNodes, TDim > &rDN_DXenr)
Definition: two_fluid_navier_stokes_alpha_method_data.h:190
typename FluidElementData< TDim, TNumNodes, true >::NodalScalarData NodalScalarData
Definition: two_fluid_navier_stokes_alpha_method_data.h:40
BoundedMatrix< double, TNumNodes *(TDim+1), TNumNodes *(TDim+1)> lhs
Definition: two_fluid_navier_stokes_alpha_method_data.h:81
NodalVectorData MeshVelocityOldStep
Definition: two_fluid_navier_stokes_alpha_method_data.h:58
typename FluidElementData< TDim, TNumNodes, true >::ShapeFunctionsType ShapeFunctionsType
Definition: two_fluid_navier_stokes_alpha_method_data.h:42
double DeltaTime
Definition: two_fluid_navier_stokes_alpha_method_data.h:74
NodalVectorData Velocity_OldStep1
Definition: two_fluid_navier_stokes_alpha_method_data.h:53
size_t NumNegativeNodes
Definition: two_fluid_navier_stokes_alpha_method_data.h:105
NodalVectorData MeshVelocity
Definition: two_fluid_navier_stokes_alpha_method_data.h:57
ShapeFunctionsGradientsType DN_DX_pos_side
Definition: two_fluid_navier_stokes_alpha_method_data.h:92
BoundedMatrix< double, TNumNodes, TNumNodes > Enr_Pos_Interp
Definition: two_fluid_navier_stokes_alpha_method_data.h:95
void CalculateAirMaterialResponse()
Definition: two_fluid_navier_stokes_alpha_method_data.h:229
Vector ShearStressOldStep
Definition: two_fluid_navier_stokes_alpha_method_data.h:70
NodalVectorData BodyForce_OldStep1
Definition: two_fluid_navier_stokes_alpha_method_data.h:61
GeometryType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: two_fluid_navier_stokes_alpha_method_data.h:46
Matrix N_pos_side
Definition: two_fluid_navier_stokes_alpha_method_data.h:90
double MaxSpectralRadius
Definition: two_fluid_navier_stokes_alpha_method_data.h:77
double VolumeErrorRate
Definition: two_fluid_navier_stokes_alpha_method_data.h:76
ShapeFunctionsGradientsType DN_DX_neg_side
Definition: two_fluid_navier_stokes_alpha_method_data.h:93
double ComputeStrainNorm()
Definition: two_fluid_navier_stokes_alpha_method_data.h:303
Vector w_gauss_pos_side
Definition: two_fluid_navier_stokes_alpha_method_data.h:98
Vector w_gauss_neg_side
Definition: two_fluid_navier_stokes_alpha_method_data.h:99
void CalculateEffectiveViscosityAtGaussPoint()
Definition: two_fluid_navier_stokes_alpha_method_data.h:340
array_1d< double, TNumNodes > rhs_ee
Definition: two_fluid_navier_stokes_alpha_method_data.h:86
bool IsAir()
Definition: two_fluid_navier_stokes_alpha_method_data.h:225
BoundedMatrix< double, TNumNodes, TNumNodes > Enr_Neg_Interp
Definition: two_fluid_navier_stokes_alpha_method_data.h:96
size_t NumPositiveNodes
Definition: two_fluid_navier_stokes_alpha_method_data.h:104
ShapeDerivativesType DN_DXenr
Definition: two_fluid_navier_stokes_alpha_method_data.h:102
double DynamicTau
Definition: two_fluid_navier_stokes_alpha_method_data.h:75
NodalVectorData Velocity
Definition: two_fluid_navier_stokes_alpha_method_data.h:52
array_1d< double, TNumNodes *(TDim+1)> rhs
Definition: two_fluid_navier_stokes_alpha_method_data.h:82
NodalScalarData NodalDynamicViscosity
Definition: two_fluid_navier_stokes_alpha_method_data.h:67
NodalScalarData NodalDensity
Definition: two_fluid_navier_stokes_alpha_method_data.h:65
unsigned int NumberOfDivisions
Definition: two_fluid_navier_stokes_alpha_method_data.h:106
NodalScalarData Distance
Definition: two_fluid_navier_stokes_alpha_method_data.h:63
NodalVectorData BodyForce
Definition: two_fluid_navier_stokes_alpha_method_data.h:60
BoundedMatrix< double, TNumNodes, TNumNodes > Kee
Definition: two_fluid_navier_stokes_alpha_method_data.h:85
NodalScalarData Pressure
Definition: two_fluid_navier_stokes_alpha_method_data.h:54
BoundedMatrix< double, TNumNodes *(TDim+1), TNumNodes > V
Definition: two_fluid_navier_stokes_alpha_method_data.h:83
void CalculateDensityAtGaussPoint()
Definition: two_fluid_navier_stokes_alpha_method_data.h:320
typename FluidElementData< TDim, TNumNodes, true >::ShapeDerivativesType ShapeDerivativesType
Definition: two_fluid_navier_stokes_alpha_method_data.h:43
double ElementSize
Definition: two_fluid_navier_stokes_alpha_method_data.h:88
typename FluidElementData< TDim, TNumNodes, true >::NodalVectorData NodalVectorData
Definition: two_fluid_navier_stokes_alpha_method_data.h:41
double DynamicViscosity
Definition: two_fluid_navier_stokes_alpha_method_data.h:73
void ComputeStrain()
Definition: two_fluid_navier_stokes_alpha_method_data.h:276
void UpdateGeometryValues(unsigned int IntegrationPointIndex, double NewWeight, const MatrixRowType &rN, const BoundedMatrix< double, TNumNodes, TDim > &rDN_DX) override
Definition: two_fluid_navier_stokes_alpha_method_data.h:179
Matrix N_neg_side
Definition: two_fluid_navier_stokes_alpha_method_data.h:91
NodalVectorData AccelerationAlphaMethod
Definition: two_fluid_navier_stokes_alpha_method_data.h:55
double Density
Definition: two_fluid_navier_stokes_alpha_method_data.h:72
BoundedMatrix< double, TNumNodes, TNumNodes *(TDim+1)> H
Definition: two_fluid_navier_stokes_alpha_method_data.h:84
Geometry< Node > GeometryType
Definition: two_fluid_navier_stokes_alpha_method_data.h:45
static int Check(const Element &rElement, const ProcessInfo &rProcessInfo)
Definition: two_fluid_navier_stokes_alpha_method_data.h:205
NodalScalarData NodalDynamicViscosityOldStep
Definition: two_fluid_navier_stokes_alpha_method_data.h:68
bool IsCut()
Definition: two_fluid_navier_stokes_alpha_method_data.h:221
NodalScalarData NodalDensityOldStep
Definition: two_fluid_navier_stokes_alpha_method_data.h:66
double ArtificialDynamicViscosity
Definition: two_fluid_navier_stokes_alpha_method_data.h:78
void ComputeDarcyTerm()
Definition: two_fluid_navier_stokes_alpha_method_data.h:361
void Initialize(const Element &rElement, const ProcessInfo &rProcessInfo) override
Definition: two_fluid_navier_stokes_alpha_method_data.h:113
Short class definition.
Definition: array_1d.h:61
#define KRATOS_CHECK_VARIABLE_IN_NODAL_DATA(TheVariable, TheNode)
Definition: checks.h:171
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
TABLE_NUMBER_ANGULAR_VELOCITY TABLE_NUMBER_MOMENT I33 BEAM_INERTIA_ROT_UNIT_LENGHT_Y KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_Z) typedef std double
Definition: DEM_application_variables.h:182
float dist
Definition: edgebased_PureConvection.py:89
float density
Definition: face_heat.py:56
v
Definition: generate_convection_diffusion_explicit_element.py:114
DN
Definition: generate_convection_diffusion_explicit_element.py:98
stress
Stress vector definition.
Definition: generate_droplet_dynamics.py:82
mu
Definition: generate_frictional_mortar_condition.py:127
int strain_size
Definition: generate_hyper_elastic_simo_taylor_neo_hookean.py:16
strain
HERE WE MUST SUBSTITUTE EXPRESSIONS.
Definition: generate_stokes_twofluid_element.py:104
S
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:39
int alpha_f
Definition: generate_two_fluid_navier_stokes.py:130
integer i
Definition: TensorModule.f:17