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. | |
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.
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