Define variables (time step, schemes, solvers, etc.) associated to the Navier-Stokes equations. More...
Variables | |
| integer | navier_contact_line_model = navier_contact_line_model_none |
| The contact line model. | |
| logical | navier_has_slip_velocity = .false. |
| logical | velocity_is_enforced = .false. |
| logical | is_pressure_increment_matrix_not_invertible = .false. |
| Boolean to check if pressure increment matrix is invertible. | |
| integer | pressure_increment_invertible_matrix_method = penalization |
| If matrix is not invertible, 2 methods can be used to solve the linear system. | |
| integer | pressure_increment_penalized_cell = back_bottom_left_corner |
| If matrix is not invertible, next integer sets the corner that will be penalized to 0. | |
Logical list to activate terms of the equation | |
| logical | is_compressible = .false. |
| Compressible flow. | |
| logical | compressible_has_predict_density = .true. |
| logical | compressible_has_update_density_eos = .true. |
| logical | compressible_has_speed_of_sound_formulation = .true. |
| logical | compressible_has_speed_of_sound_wood_model = .true. |
| logical | compressible_has_predict_density_eos_initialization = .false. |
| logical | is_boussinesq_approximation = .false. |
| Boussinesq approximation. | |
| logical | momentum_has_source_term = .false. |
| Has momentum source term? | |
| logical | pressure_has_source_term = .false. |
| Has pressure source term. | |
| logical | continuity_has_source_term = .false. |
| Has continuity source term. | |
| logical | momentum_has_linear_term = .false. |
| Has momentum linear term? | |
| logical | navier_has_nonlinear_momentum_term = .true. |
| Has non linear momentum term? | |
| logical | navier_has_stress_term = .true. |
| Has stress (diffusion) term? | |
| logical | navier_has_momentum_equation = .true. |
| Has momentum equation. | |
| logical | navier_has_div_u_advection_term = .true. |
| Substract \( u \cdot div(u) \) for pure advection (incompressible flows) | |
| logical | navier_has_brinkman_term = .false. |
| Has Brinkman term? | |
| logical | navier_has_carman_kozeny_term = .false. |
| Has Carman-Kozeny term? | |
| logical | navier_has_gravity_term = .false. |
| Has gravity term? | |
| logical | navier_has_surface_tension_term = .false. |
| Has surface tension term? | |
| logical | navier_has_grad_div_term = .false. |
| Has \( \nabla(\nabla \cdot \mathbf{u}) \) term? | |
| logical | navier_has_temporal_term = .true. |
| Has temporal term? | |
| logical | navier_has_immersed_boundaries = .false. |
| Flag to enable immersed boundaries for the Navier-Stokes equation. | |
| logical | density_has_immersed_boundaries = .false. |
| Flag to enable density immersed boundaries for the Navier-Stokes equation. | |
| logical | navier_has_pressure_term = .true. |
| Flag to disable pressure term. | |
| logical | navier_has_viscous_term = .true. |
| Flag to disable viscous term. | |
Immersed boundaries | |
| integer, dimension(:), allocatable | navier_isd_target |
| List of enabled immersed boundaries for the Νavier-Stokes equation. | |
| integer, dimension(:), allocatable | density_isd_target |
| List of enabled immersed boundaries for the density Νavier-Stokes equation. | |
| integer | n_ibc_velocity = 0 |
| Number of immersed boundaries enabled for the Navier-Stokes equation. | |
| integer | n_ibc_density = 0 |
| Number of density immersed boundaries enabled for the Navier-Stokes equation. | |
| logical | navier_ib_has_one_sided_inner_discretization |
| One sided discretization close to immersed boundaries. | |
| integer, dimension(:), allocatable | navier_ib_inner_discretization_order |
| integer, dimension(:), allocatable | density_ib_inner_discretization_order |
Additional physical information | |
| double precision, dimension(3) | gravity_vector = 0d0 |
| Gravity vector. | |
| logical | navier_enable_driving_pressure = .false. |
| Driving pressure (for single phase flows) | |
| integer | navier_gravity_temporal_method = time_method_explicit |
| Gravity temporal method,. | |
| double precision | surface_tension_coeff = 0d0 |
| Surface tension. | |
| integer | navier_surface_tension_temporal_method = time_method_implicit |
| Surface tension temporal method,. | |
| logical | navier_surface_tension_is_sharp = .false. |
| logical | navier_enable_surface_tension_grid_rotation = .true. |
| Option to consider grid rotation for surface tension. | |
| logical | navier_has_compute_bulk_pressure_for_eos = .false. |
| Option to use bulk pressure for EOS (compressible multiphase flow) | |
| integer | navier_bulk_pressure_for_eos_method =bulk_pressure_for_eos_method_curvature |
Variables associated to the time discretization | |
| double precision | navier_time_step = 0d0 |
| Current Time step Current Time step. | |
| double precision | navier_time_step_n = 0d0 |
| Previous time step. | |
| integer | navier_time_order_discretization = time_order_1 |
| Time order discretization. | |
| integer | navier_nonlinear_explicit_time_order_discretization = time_order_1 |
| Time order discretization for explicit schemes. | |
| logical | navier_use_explicit_terms_accumulator = .false. |
| A switch for when to use explicit accumulator. | |
Boundary condition variables | |
| type(t_boundary_condition_face) | navier_boundary_condition |
| Boundary condition. | |
| type(t_boundary_condition) | pressure_increment_boundary_condition |
| type(t_boundary_condition) | pressure_boundary_condition |
| type(t_boundary_condition) | density_boundary_condition |
Initializer | |
| class(t_density_ibc_initializer_item), dimension(:), allocatable | density_ibc_initializer |
| density immersed boundary conditions initializers | |
| class(t_vector_initializer), pointer | velocity_initializer => null() |
| Initial condition initializer. | |
| class(t_scalar_initializer), pointer | density_initializer => null() |
| density initializer | |
| class(t_scalar_initializer), pointer | pressure_initializer => null() |
| Pressure initializer. | |
| class(t_scalar_initializer), pointer | pressure_source_term_initializer => null() |
| Pressure source term initializer. | |
| class(t_scalar_initializer), pointer | continuity_source_term_initializer => null() |
| Continuity source term initializer. | |
| class(t_face_bc_initializer), pointer | velocity_bc_initializer => null() |
| Boundary conditions initializer. | |
| class(t_cell_bc_initializer), pointer | density_bc_initializer => null() |
| density Boundary conditions initializer | |
| class(t_navier_ibc_initializer_item), dimension(:), allocatable | velocity_ibc_initializer |
| Immersed boundary conditions. | |
| class(t_vector_initializer), pointer | momentum_source_term_initializer => null() |
| Source term initializer. | |
| class(t_vector_initializer), pointer | momentum_linear_term_initializer => null() |
| Linear term initializer. | |
Hydrostatic pressure initialization | |
| logical | navier_has_hydrostatic_pressure_initialization = .false. |
| Flag to enable the initialization of hydrostatic pressure. | |
| double precision | navier_hydrostatic_solver_tolerance = 1d-15 |
| Tolerance of the hydrostatic pressure solver. | |
| integer | navier_hydrostatic_solver_max_iter = 100 |
| Maximum number of iterations of the hydrostatic pressure solver. | |
Conservative inertia method | |
| logical | is_navier_momentum_preserving_method = .false. |
| Enable conservative method. | |
| integer | navier_momentum_preserving_method_prediction = navier_momentum_preserving_method_prediction_on_cells |
Velocity pressure coupling method | |
| logical | navier_is_disable_velocity_pressure_method = .false. |
| Disable velocity pressure method? | |
| integer | navier_velocity_pressure_method = incremental_pressure_correction |
| Velocity pressure method choice. | |
| logical | is_pressure_increment_poisson_dodd_approximation = .false. |
| Pressure increment poisson approximation method choice (Dodd and/or Frantzis) | |
| logical | is_pressure_increment_poisson_frantzis_approximation = .false. |
| logical | is_pressure_increment_poisson_equation_bc_time_dependent = .false. |
| Boundary condition types for the pressure increment Poisson equation are constant (values can change) | |
| integer | poisson_approximation_iteration_start = 5 |
| Number of time iterations to skip. | |
| logical | navier_do_project_initial_velocity = .false. |
| Initial velocity projection. | |
| integer | pressure_scheme = cell_centered_o2_diffusion_scheme |
| Implicit associated scheme. | |
| integer | pressure_advection_scheme = pressure_advection_scheme_uncentered_o2 |
| Pressure advection scheme (compressible flow only) | |
| integer | density_advection_scheme = density_advection_scheme_weno5 |
| density advection scheme (compressible flow only) | |
| logical | subtract_mean_pressure_to_pressure = .false. |
| Substract integrale of pressure to pressure field. | |
| integer | navier_diffusion_term_discretization_type = implicit_discretization |
| Diffusion term discretization type (implicit or explicit) | |
| integer | navier_diffusion_term_scheme = navier_diffusion_o2_centered_scheme |
| Diffusion term scheme. | |
| integer | navier_diffusion_explicit_time_order_discretization = time_order_1 |
| Time order discretization for explicit schemes. | |
Variables associated to the discretization of the advection term | |
| integer | navier_nonlinear_term_discretization_type = implicit_discretization |
| Nonlinear term discretization type (implicit or explicit) | |
| integer | navier_nonlinear_term_scheme = navier_nonlinear_centered_o2_scheme |
| Nonlinear term scheme. | |
| integer | navier_nonlinear_term_splitting_scheme = navier_lie_trotter_splitting |
| Nonlinear term: Splitting Method for Lax-Wendroff TVD Superbee. | |
| double precision, dimension(3) | navier_splitting_time_coeff = 1d0 |
| Operator splitting method time step modifier. | |
| logical | is_navier_specify_nonlinear_term_scheme_tsf = .false. |
| Specify a CFL factor for explicit sub iterations (tsf stand for temporal_stability_factor) | |
| double precision | navier_nonlinear_term_scheme_temporal_stability_factor = -1d0 |
CFL used for explicit sub iterations (if is_navier_specify_nonlinear_term_scheme_temporal_stability_factor, otherwise, using default values) | |
| logical | navier_nonlinear_term_dir_split = .false. |
| Advection term: directional splitting option. | |
| logical | is_navier_fully_explicit = .false. |
| Fully explicit. | |
| type(t_fv_flux), parameter | default_navier_nonlinear_explicit_flux = default_flux_godunov |
| Fluxes type The default explicit nonlinear term flux. | |
| type(t_fv_flux) | navier_nonlinear_explicit_flux = default_navier_nonlinear_explicit_flux |
| Fluxes type The effective explicit nonlinear term flux. | |
Miscellaneous variables | |
| logical | navier_has_ghost_boundary_cells = .false. |
| Ghost boundary cell choice. | |
| logical | pressure_has_ghost_boundary_cells = .false. |
| type(t_face_stencil) | navier_stencil |
| Stencils. | |
| type(t_cell_stencil) | pressure_stencil |
| integer | navier_enforced_stencil = -1 |
| Enforced stencil. | |
| integer | pressure_increment_enforced_stencil = -1 |
| logical | pressure_has_imposed_value = .false. |
| Has imposed value (pressure)? | |
| logical | pressure_has_imposed_value_reference_value = .false. |
| double precision, dimension(3) | pressure_imposed_point = [0d0, 0d0, COORD_Z_2D] |
| Imposed value. | |
| double precision | pressure_imposed_value = huge(0d0) |
| logical | pressure_has_time_varying_boundary_condition = .false. |
| Variable pressure boundary condition. | |
| type(t_boundary_logical) | pressure_boundary_is_time_varying |
| type(t_boundary_double) | pressure_boundary_initial_value |
| type(t_boundary_double) | pressure_boundary_final_value |
| type(t_boundary_double) | pressure_boundary_final_time_reference |
Linear system solver variables | |
| type(t_face_ls_map) | navier_ls_map |
| Mapping variables. | |
| type(t_ls_map) | pressure_ls_map |
| class(t_linear_solver), allocatable | momentum_solver |
| Linear system solver. | |
| class(t_linear_solver), allocatable | pressure_solver |
| class(t_linear_solver), allocatable | ibc_velocity_extrapolation_solver |
| Solver for the extrapolation step of the Navier-Stokes resolution. | |
Wood model for speed of sound | |
| integer, dimension(:,:), allocatable | navier_speed_of_sound_model_index |
| Interface index to identify each phase for the Wood speed of sound model. | |
Global divergence | |
| double precision | l2_divergence |
| Divergence after correction. | |
| double precision | linf_divergence |
| double precision | prediction_l2_divergence |
| Predicted divergence (before correction) | |
| double precision | prediction_linf_divergence |
Refined velocity method | |
| integer | ui_refined_grid_velocity_method |
| Refined grid method for the velocity interpolation/reconstruction. | |
Define variables (time step, schemes, solvers, etc.) associated to the Navier-Stokes equations.
| integer variables_navier::navier_gravity_temporal_method = time_method_explicit |
Gravity temporal method,.
| integer variables_navier::navier_surface_tension_temporal_method = time_method_implicit |
Surface tension temporal method,.