foreseer_compressible_transformations.f90 Source File

Define compressible variables transformations of FORESEER library.

This File Depends On

sourcefile~~foreseer_compressible_transformations.f90~~EfferentGraph sourcefile~foreseer_compressible_transformations.f90 foreseer_compressible_transformations.f90 sourcefile~foreseer_primitive_compressible.f90 foreseer_primitive_compressible.f90 sourcefile~foreseer_primitive_compressible.f90->sourcefile~foreseer_compressible_transformations.f90 sourcefile~foreseer_conservative_compressible.f90 foreseer_conservative_compressible.f90 sourcefile~foreseer_conservative_compressible.f90->sourcefile~foreseer_compressible_transformations.f90 sourcefile~foreseer_eos_object.f90 foreseer_eos_object.f90 sourcefile~foreseer_eos_object.f90->sourcefile~foreseer_compressible_transformations.f90 sourcefile~foreseer_eos_object.f90->sourcefile~foreseer_primitive_compressible.f90 sourcefile~foreseer_eos_object.f90->sourcefile~foreseer_conservative_compressible.f90 sourcefile~foreseer_primitive_object.f90 foreseer_primitive_object.f90 sourcefile~foreseer_eos_object.f90->sourcefile~foreseer_primitive_object.f90 sourcefile~foreseer_conservative_object.f90 foreseer_conservative_object.f90 sourcefile~foreseer_eos_object.f90->sourcefile~foreseer_conservative_object.f90 sourcefile~foreseer_primitive_object.f90->sourcefile~foreseer_primitive_compressible.f90 sourcefile~foreseer_conservative_object.f90->sourcefile~foreseer_conservative_compressible.f90
Help

Files Dependent On This One

sourcefile~~foreseer_compressible_transformations.f90~~AfferentGraph sourcefile~foreseer_compressible_transformations.f90 foreseer_compressible_transformations.f90 sourcefile~foreseer.f90 foreseer.f90 sourcefile~foreseer_compressible_transformations.f90->sourcefile~foreseer.f90 sourcefile~foreseer_test_eos_compressible.f90 foreseer_test_eos_compressible.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_eos_compressible.f90 sourcefile~foreseer_test_primitive_compressible.f90 foreseer_test_primitive_compressible.F90 sourcefile~foreseer.f90->sourcefile~foreseer_test_primitive_compressible.f90 sourcefile~foreseer_test_riemann_solver_compressible_exact.f90 foreseer_test_riemann_solver_compressible_exact.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_riemann_solver_compressible_exact.f90 sourcefile~foreseer_test_riemann_solver_compressible_hllc.f90 foreseer_test_riemann_solver_compressible_hllc.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_riemann_solver_compressible_hllc.f90 sourcefile~foreseer_test_shock_tube.f90 foreseer_test_shock_tube.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_shock_tube.f90 sourcefile~foreseer_test_riemann_solver_compressible_llf.f90 foreseer_test_riemann_solver_compressible_llf.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_riemann_solver_compressible_llf.f90 sourcefile~foreseer_test_riemann_solver_compressible_pvl.f90 foreseer_test_riemann_solver_compressible_pvl.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_riemann_solver_compressible_pvl.f90 sourcefile~foreseer_test_riemann_solver_compressible_roe.f90 foreseer_test_riemann_solver_compressible_roe.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_riemann_solver_compressible_roe.f90 sourcefile~foreseer_test_compressible_transformations.f90 foreseer_test_compressible_transformations.f90 sourcefile~foreseer.f90->sourcefile~foreseer_test_compressible_transformations.f90 sourcefile~foreseer_test_conservative_compressible.f90 foreseer_test_conservative_compressible.F90 sourcefile~foreseer.f90->sourcefile~foreseer_test_conservative_compressible.f90
Help


Source Code

!< Define compressible variables transformations of FORESEER library.

module foreseer_compressible_transformations
!< Define compressible variables transformations of FORESEER library.

use foreseer_conservative_compressible, only : conservative_compressible
use foreseer_primitive_compressible, only : primitive_compressible
use foreseer_eos_object, only : eos_object
use penf, only : R8P
use vecfor, only : vector

implicit none
private
public :: conservative_to_primitive_compressible
public :: primitive_to_conservative_compressible

contains
   ! public procedures
   elemental function conservative_to_primitive_compressible(conservative, eos) result(primitive_)
   !< Return a [[primitive_compressible]] state transforming a given [[conservative_compressible]] state.
   type(conservative_compressible), intent(in) :: conservative !< Conservative state.
   class(eos_object),               intent(in) :: eos          !< Equation of state.
   type(primitive_compressible)                :: primitive_   !< Primitive state.

   primitive_%density  = conservative%density
   primitive_%velocity = conservative%velocity()
   primitive_%pressure = conservative%pressure(eos=eos)
   endfunction conservative_to_primitive_compressible

   elemental function primitive_to_conservative_compressible(primitive, eos) result(conservative_)
   !< Return a [[conservative_compressible]] state transforming a given [[primitive_compressible]] state.
   type(primitive_compressible), intent(in) :: primitive     !< Primitive state.
   class(eos_object),            intent(in) :: eos           !< Equation of state.
   type(conservative_compressible)          :: conservative_ !< Conservative state.

   conservative_%density  = primitive%density
   conservative_%momentum = primitive%momentum()
   conservative_%energy   = primitive%energy(eos=eos)
   endfunction primitive_to_conservative_compressible
endmodule foreseer_compressible_transformations