SFEMaNS  version 5.3
Reference documentation for SFEMaNS
sub_navier_stokes.f90
Go to the documentation of this file.
3 PRIVATE
4 
5 CONTAINS
6 
7  SUBROUTINE navier_stokes_decouple(comm_one_d_ns,time, vv_3_LA, pp_1_LA, &
8  list_mode, pp_mesh, vv_mesh, incpn_m1, incpn, pn_m1, pn, un_m1, un, &
9  vvz_per, pp_per, hn_p2, bn_p2, density_m2, density_m1, density, visco_dyn, tempn, &
10  level_set_m1, level_set, visc_entro_level)
11 
12  USE def_type_mesh
13  USE periodic
14  USE input_data
18  USE my_util
19  IMPLICIT NONE
20  TYPE(mesh_type), INTENT(IN) :: vv_mesh, pp_mesh
21  INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
22  REAL(KIND=8), DIMENSION(vv_mesh%np,6,SIZE(list_mode)), INTENT(INOUT) :: un_m1, un
23  REAL(KIND=8), DIMENSION(vv_mesh%np,2,SIZE(list_mode)), INTENT(IN) :: density_m2, density_m1, density
24  REAL(KIND=8), DIMENSION(vv_mesh%np,2,SIZE(list_mode)), INTENT(IN) :: visco_dyn
25  REAL(KIND=8), DIMENSION(:,:,:), INTENT(IN) :: tempn
26  REAL(KIND=8), DIMENSION(pp_mesh%np,2,SIZE(list_mode)), INTENT(INOUT) :: pn_m1, pn, incpn_m1, incpn
27  REAL(KIND=8), DIMENSION(:,:,:), INTENT(IN) :: Hn_p2
28  REAL(KIND=8), DIMENSION(:,:,:), INTENT(IN) :: Bn_p2
29  REAL(KIND=8), DIMENSION(:,:,:,:), INTENT(IN) :: level_set_m1, level_set
30  REAL(KIND=8), INTENT(IN) :: time
31  REAL(KIND=8), DIMENSION(:,:), INTENT(OUT) :: visc_entro_level
32  TYPE(periodic_type), INTENT(IN) :: vvz_per, pp_per
33  TYPE(petsc_csr_la) :: vv_3_LA, pp_1_LA
34 #include "petsc/finclude/petsc.h"
35  mpi_comm, DIMENSION(:), POINTER :: comm_one_d_ns
36 
37 
38  IF (inputs%if_navier_stokes_art_comp) THEN !Artificial compression for multiphase Navier-Stokes equations
39  IF (.NOT.inputs%if_navier_stokes_with_u) THEN
40  CALL bdf1_art_comp_with_m(comm_one_d_ns,time,vv_3_la, pp_1_la, vvz_per, pp_per, &
41  inputs%dt, inputs%Re, list_mode, pp_mesh, vv_mesh, &
42  pn_m1, pn, un_m1, un, hn_p2, bn_p2, tempn, density_m2, density_m1, density,&
43  visco_dyn, level_set, visc_entro_level)
44  ELSE
45  CALL error_petsc('Artificial compressibility with velocity not programmed yet')
46  END IF
47  ELSE !Projection-correction scheme for Navier-Stokes equations
48  IF (inputs%if_navier_stokes_with_u) THEN
49  CALL bdf2_ns_stress_bc_with_u(comm_one_d_ns,time,vv_3_la, pp_1_la, vvz_per, pp_per, &
50  inputs%dt, inputs%Re, list_mode, pp_mesh, vv_mesh, incpn_m1, incpn, &
51  pn_m1, pn, un_m1, un, hn_p2, bn_p2, opt_tempn=tempn)
52  ELSE
53  CALL three_level_ns_tensor_sym_with_m(comm_one_d_ns,time,vv_3_la, pp_1_la, &
54  inputs%dt, inputs%Re, list_mode, pp_mesh, vv_mesh, incpn_m1, incpn, &
55  pn_m1, pn, un_m1, un, hn_p2, bn_p2, density_m2, density_m1, density, visco_dyn, tempn, &
56  level_set_m1, level_set, visc_entro_level)
57  END IF
58  END IF
59  END SUBROUTINE navier_stokes_decouple
60 
61 END MODULE update_navier_stokes
subroutine, public bdf1_art_comp_with_m(comm_one_d, time, vv_3_LA, pp_1_LA, vvz_per, pp_per, dt, Re, list_mode, pp_mesh, vv_mesh, pn_m1, pn, un_m1, un, Hn_p2, Bn_p2, tempn, density_m1, density, density_p1, visco_dyn, level_set_p1, visc_entro_level)
subroutine, public navier_stokes_decouple(comm_one_d_ns, time, vv_3_LA, pp_1_LA, list_mode, pp_mesh, vv_mesh, incpn_m1, incpn, pn_m1, pn, un_m1, un, vvz_per, pp_per, Hn_p2, Bn_p2, density_m2, density_m1, density, visco_dyn, tempn, level_set_m1, level_set, visc_entro_level)
subroutine error_petsc(string)
Definition: my_util.f90:16
type(my_data), public inputs
subroutine, public three_level_ns_tensor_sym_with_m(comm_one_d, time, vv_3_LA, pp_1_LA, dt, Re, list_mode, pp_mesh, vv_mesh, incpn_m1, incpn, pn_m1, pn, un_m1, un, Hn_p2, Bn_p2, density_m1, density, density_p1, visco_dyn, tempn, level_set, level_set_p1, visc_entro_level)
subroutine, public bdf2_ns_stress_bc_with_u(comm_one_d, time, vv_3_LA, pp_1_LA, vvz_per, pp_per, dt, Re, list_mode, pp_mesh, vv_mesh, incpn_m1, incpn, pn_m1, pn, un_m1, un, chmp_mag, Bn_p2, opt_tempn)