auxiliar.f90 Source File


This file depends on

sourcefile~~auxiliar.f90~2~~EfferentGraph sourcefile~auxiliar.f90~2 auxiliar.f90 sourcefile~ar_models.f90 ar_models.f90 sourcefile~auxiliar.f90~2->sourcefile~ar_models.f90 sourcefile~base.f90~2 base.f90 sourcefile~auxiliar.f90~2->sourcefile~base.f90~2 sourcefile~constants.f90 constants.f90 sourcefile~auxiliar.f90~2->sourcefile~constants.f90 sourcefile~ar_models.f90->sourcefile~base.f90~2 sourcefile~ar_models.f90->sourcefile~constants.f90 sourcefile~math.f90 math.f90 sourcefile~ar_models.f90->sourcefile~math.f90 sourcefile~substance.f90 substance.f90 sourcefile~base.f90~2->sourcefile~substance.f90 sourcefile~math.f90->sourcefile~constants.f90 sourcefile~auxiliar.f90 auxiliar.f90 sourcefile~math.f90->sourcefile~auxiliar.f90 sourcefile~continuation.f90 continuation.f90 sourcefile~math.f90->sourcefile~continuation.f90 sourcefile~linalg.f90 linalg.f90 sourcefile~math.f90->sourcefile~linalg.f90 sourcefile~substance.f90->sourcefile~constants.f90 sourcefile~auxiliar.f90->sourcefile~constants.f90 sourcefile~continuation.f90->sourcefile~constants.f90 sourcefile~continuation.f90->sourcefile~auxiliar.f90 sourcefile~continuation.f90->sourcefile~linalg.f90 sourcefile~linalg.f90->sourcefile~constants.f90 sourcefile~linalg.f90->sourcefile~auxiliar.f90

Files dependent on this one

sourcefile~~auxiliar.f90~2~~AfferentGraph sourcefile~auxiliar.f90~2 auxiliar.f90 sourcefile~equilibria.f90 equilibria.f90 sourcefile~equilibria.f90->sourcefile~auxiliar.f90~2 sourcefile~flash.f90 flash.f90 sourcefile~equilibria.f90->sourcefile~flash.f90 sourcefile~phase_envelopes_pt.f90 phase_envelopes_pt.f90 sourcefile~equilibria.f90->sourcefile~phase_envelopes_pt.f90 sourcefile~saturations_points.f90 saturations_points.f90 sourcefile~equilibria.f90->sourcefile~saturations_points.f90 sourcefile~flash.f90->sourcefile~auxiliar.f90~2 sourcefile~phase_envelopes_pt.f90->sourcefile~auxiliar.f90~2 sourcefile~saturations_points.f90->sourcefile~auxiliar.f90~2 sourcefile~yaeos.f90 yaeos.f90 sourcefile~yaeos.f90->sourcefile~equilibria.f90

Source Code

module yaeos__equilibria_auxiliar
   !! Auxiliar functions used for phase-equilibria calculation.
   use yaeos__constants, only: pr
   use yaeos__models_base, only: BaseModel
   use yaeos__models_ar, only: ArModel
   implicit none

contains

   function k_wilson(model, T, P) result(K)
      !! # K_wilson
      !!
      !! ## Description
      !! K-factors regression done by Wilson, used for initialization.
      class(BaseModel), intent(in) :: model
      real(pr), intent(in) :: T
      real(pr), intent(in) :: P
      real(pr)  :: K(size(model%components%pc))

      K = (model%components%Pc/P) &
         * exp(5.373_pr*(1 + model%components%w)&
         * (1 - model%components%Tc/T))
   end function k_wilson

   real(pr) function P_wilson(model, z, T) result(P)
      !! # P_wilson
      !!
      !! ## Description
      !! Calculate the pressure at a given T of a mixture using the Wilson
      !! equation.
      class(BaseModel), intent(in) :: model !! Model of the mixture.
      real(pr), intent(in) :: z(:) !! Mole fractions of the components.
      real(pr), intent(in) :: T !! Temperature [K].

      P = 1.0_pr/sum(&
         z*model%components%Pc &
         * exp(5.373_pr &
         * (1 + model%components%w)*(1 - model%components%Tc/T)))
   end function P_wilson

end module yaeos__equilibria_auxiliar