read_fluid_input Subroutine

private subroutine read_fluid_input(filename, params)

Reads the &fluid_input namelist block.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(case_params_t), intent(inout) :: params

Namelists

Namelist fluid_input


Variables

Name Type Default Description
rho real(kind=rk) None
nu real(kind=rk) None
enable_cantera logical None
cantera_mech_file character(len=path_len) None
cantera_phase_name character(len=name_len) None
background_temp real(kind=rk) None
background_press real(kind=rk) None
transport_update_interval integer None
enable_variable_density logical None
enable_density_corrector_projection logical None
density_eos character(len=name_len) "constant"
enable_variable_nu logical None
upwind_dilatation_density logical None

Source Code

   subroutine read_fluid_input(filename, params)
      character(len=*), intent(in) :: filename
      type(case_params_t), intent(inout) :: params

      real(rk) :: rho, nu
      logical :: enable_cantera
      character(len=path_len) :: cantera_mech_file
      character(len=name_len) :: cantera_phase_name
      real(rk) :: background_temp
      real(rk) :: background_press
      integer :: transport_update_interval
      integer :: unit_id, ios
      logical :: enable_variable_density
      logical :: enable_density_corrector_projection
      logical :: upwind_dilatation_density
      character(len=name_len) :: density_eos = "constant" !< Density EOS selector: constant, cantera, ideal_gas.
      logical :: enable_variable_nu
      namelist /fluid_input/ rho, nu, enable_cantera, cantera_mech_file, cantera_phase_name, &
                              background_temp, background_press, transport_update_interval, &
                              enable_variable_density, enable_density_corrector_projection, &
                              density_eos, enable_variable_nu, upwind_dilatation_density

      rho = params%rho
      nu = params%nu
      enable_cantera = params%enable_cantera_fluid
      cantera_mech_file = params%cantera_mech_file
      cantera_phase_name = params%cantera_phase_name
      background_temp = params%background_temp
      background_press = params%background_press
      transport_update_interval = params%transport_update_interval
      enable_variable_density = params%enable_variable_density
      enable_density_corrector_projection = params%enable_density_corrector_projection
      density_eos = params%density_eos
      enable_variable_nu = params%enable_variable_nu
      upwind_dilatation_density = params%upwind_dilatation_density

      call open_namelist_file(filename, unit_id, ios)

      if (ios == 0) then
         read(unit_id, nml=fluid_input, iostat=ios)
         close(unit_id)
      end if

      if (ios > 0) call fatal_error('input', 'failed reading &fluid_input')

      params%rho = rho
      params%nu = nu
      params%enable_cantera_fluid = enable_cantera
      params%enable_variable_density = enable_variable_density
      params%enable_density_corrector_projection = enable_density_corrector_projection
      params%density_eos = trim(density_eos)
      params%enable_variable_nu = enable_variable_nu
      params%upwind_dilatation_density = upwind_dilatation_density
      params%cantera_mech_file = cantera_mech_file
      params%cantera_phase_name = trim(cantera_phase_name)
      params%background_temp = background_temp
      params%background_press = background_press
      params%transport_update_interval = transport_update_interval
   end subroutine read_fluid_input