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.
Embedded Ausas Navier-Stokes Element

ELEMENT DESCRIPTION:

Current directory contains the documentation for the symbolic derivation of the _"embedded_ausas_navier_stokes"_ element. This element includes a formulation of a quasi-incompressible Navier-Stokes element for both 2D and 3D cases.

The particularity of this formulation is that it integrates by parts the mass conservation equation. This introduces a velocity normal projection boundary term. If this boundary term is dropped and the Ausas discontinuous shape functions (Ausas, 2009) are used, a weak slip boundary condition imposition appears in the embedded interface cut.

SYMBOLIC GENERATOR SETTINGS:

  • Dimension to compute: This symbolic generator is valid for both 2D and 3D cases. Since the element has been programed with a dimension template in Kratos, it is advised to set the dim_to_compute flag as "_Both_". In this case the generated .cpp file will contain both 2D and 3D implementations.
  • Linearisation settings: FullNR considers the convective velocity as _"v-vmesh"_, hence v is taken into account in the derivation of the LHS and RHS. Picard (a.k.a. QuasiNR) considers the convective velocity as "a", thus it is considered as a constant in the derivation of the LHS and RHS.
  • Artificial compressiblity: If set to true, the time derivative of the density is introduced in the mass conservation equation together with the state equation $dp/d\rho=c^2$ (being c the sound velocity). These assumptions add some extra terms to the usual Navier-Stokes equations that are intended to act as a soft artificial compressibility, which is controlled by the value of "_c_", meaning that if this value is large enough the artificial compressibility terms vanish.

INSTRUCTIONS

Run:

python generate_embedded_ausas_navier_stokes_element.py

Then file "_embedded_ausas_navier_stokes.cpp_" is generated automatically. Such file should be copied within the "_custom_elements_" folder of the FluidDynamicsApplication. The corresponding header file "embedded_ausas_navier_stokes.h", which implements the element is already stored in the custom_elements folder.