version 0.6.0
Loading...
Searching...
No Matches
mod_navier_predict_density Module Reference

Predict the density at the next time step. More...

Functions/Subroutines

subroutine predict_density (density_face_star, spatial_scheme, do_spatial_split)
 
subroutine predict_density_scalar (density_face_star)
 Predict the density field at time $t^{n+1}$ using a cell scalar advection method.
 
subroutine material_linear_transformation (prop_in_1, prop_in_2, prop_out_1, prop_out_2, field_in, field_out)
 Transform a linearly interpolated field, from 2 phases, (such as density) towards a another linearly interpolated field (such as viscosity).
 
subroutine predict_density_viscosity_scalar (density_face_star, viscosity_star)
 Predict the density field at time $t^{n+1}$ using a cell scalar advection method. For 2 phases, we can linearly interpolate the viscosity from the density For more phases, we have to advect the viscosity by itself. Require n_phases >= 2.
 
subroutine crop_density (density)
 Crop the density between its max and min values.
 
subroutine crop_density_face (density_face)
 Crop the density between its max and min values.
 
subroutine crop_viscosity (viscosity)
 Crop the viscosity between its max and min values.
 
subroutine crop_viscosity_face (viscosity_face)
 Crop the viscosity between its max and min values.
 
subroutine crop_cell_field (my_min, my_max, my_cell_field)
 Crop the field between a min and a max.
 
subroutine crop_face_field (my_min, my_max, my_face_field)
 Crop the field between a min and a max.
 

Detailed Description

We use a classical advection that is based on the same numerical method as the inertial term. This one can be, for example, spatial WENO5 with NSSP32 temporal integration.

Function/Subroutine Documentation

◆ material_linear_transformation()

subroutine mod_navier_predict_density::material_linear_transformation ( double precision, intent(in) prop_in_1,
double precision, intent(in) prop_in_2,
double precision, intent(in) prop_out_1,
double precision, intent(in) prop_out_2,
double precision, dimension(:,:,:), intent(in) field_in,
double precision, dimension(:,:,:), intent(inout) field_out )

If \( \rho = C \left( \rho_1 - \rho_2 \right ) + \rho_2 \) and \( \mu = C \left( \mu_1 - \mu_2 \right ) + \mu_2 \), and if given the field \( \rho \) and the scalars \( \rho_1, \rho_2, \mu_1, \mu_2 \), we can trivialy compute \( C(x) = \frac{\rho(x) - \rho_2}{\rho_1 - \rho_2} \) from which we deduce \( \mu(x) \).

This is only possible if \( prop_in_1 \ne prop_in_2 \) and \( \field_in(x) \in [prop_in_1,prop_in_2] \). require prop_in_1 ! = prop_in_2