Equation of State Notes
EOS Calls
Initialization
advance_timestep
- Step 1.
Define the average expansion at time \(t^\nph\) and the new \(w_0.\) * if ``dpdt_factor``* \(>\) 0 then
In
makePfromRhoH
, we compute a thermodynamic \(p^n\) for the volume discrepancy term using \((\rho,h,X)^n\).
end if
- Step 2.
Construct the provisional edge-based advective velocity, \(\uadvone.\)
- Step 3.
React the full state and base state through the first time interval of \(\dt/2.\)
In
react_state
\(\rightarrow\) burner, we compute \(c_p\) and \(\xi_k\) for inputs to VODE using \((\rho,T,X)^n\).In
react_state
, we compute \(T^{(1)}\) using \((\rho,h,X)^{(1)}\) (ifuse_tfromp = F
) or \((\rho,X)^{(1)}\) and \(p_0^n\) (ifuse_tfromp = T
)
if
evolve_base_state = T
thenIn
make_gamma
, we compute \(\Gamma_1\) using \((\rho,X)^{(1)}\) and \(p_0^n\).
end if
- Step 4.
- Advect the base state, then the full state, through a time interval of \(\dt.\)if
use_thermal_diffusion = T
thenIn advance before
make_explicit_thermal
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{(1)}\).In
enthalpy_advance
\(\rightarrow\) update_scal, we compute \(h\) above thebase_cutoff_density
using \((\rho,X)^{(2),*}\) and \(p_0^{n+1,*}\).In
thermal_conduct
, we compute \(T^{(2),*}\) using \((\rho,h,X)^{(2),*}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2),*}\) and \(p_0^{n+1,*}\) (ifuse_tfromp = T
).
else
In
enthalpy_advance
\(\rightarrow\)update_scal
, we compute \(h\) above thebase_cutoff_density
using \((\rho,X)^{(2),*}\) and \(p_0^{n+1,*}\).In
enthalpy_advance
, we compute \(T^{(2),*}\) using \((\rho,h,X)^{(2),*}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2),*}\) and \(p_0^{n+1,*}\) (ifuse_tfromp = T
).
end if
- Step 5.
React the full state through a second time interval of \(\dt/2.\)
In
react_state
\(\rightarrow\) burner, we compute \(c_p\) and \(\xi_k\) for inputs to VODE using \((\rho,T,X)^{(2),*}\).In
react_state
, we compute \(T^{n+1,*}\) using \((\rho,h,X)^{n+1,*}\) (ifuse_tfromp = F
) or \((\rho,X)^{n+1,*}\) and \(p_0^{n+1,*}\) (if use_tfromp = T).
if
evolve_base_state
thenIn
make_gamma
, we compute \(\Gamma_1\) using \((\rho,X)^{n+1,*}\) and \(p_0^{n+1,*}\).
end if
- Step 6.
- Define a new average expansion rate at time \(t^\nph.\)if
use_thermal_diffusion
thenIn advance before
make_explicit_thermal
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{n+1,*}\).
end if
In
make_S
, we compute thermodynamic variables using \((\rho,T,X)^{n+1,*}\).
if
dpdt_factor
\(>\) 0 thenIn
makePfromRhoH
, we compute a thermodynamic \(p^{n+1,*}\) for the volume discrepancy term using \((\rho,h,X)^{n+1,*}\).
end if
- Step 7.
Construct the final edge-based advective velocity, \(\uadvtwo.\)
- Step 8.
- Advect the base state, then the full state, through a time interval of \(\dt.\)if
use_thermal_diffusion = T
thenIn
enthalpy_advance
\(\rightarrow\)update_scal
, we compute \(h\) above thebase_cutoff_density
using \((\rho,X)^{(2)}\) and \(p_0^{n+1}\).In
advance
beforethermal_conduct
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{(2),*}\).In
thermal_conduct
, we compute \(T^{(2)}\) using \((\rho,h,X)^{(2)}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2)}\) and \(p_0^{n+1}\) (ifuse_tfromp = T
).
else
In
enthalpy_advance
\(\rightarrow\)update_scal
, we compute \(h\) above thebase_cutoff_density
using \((\rho,X)^{(2)}\) and \(p_0^{n+1}\).In
enthalpy_advance
, we compute \(T^{(2)}\) using \((\rho,h,X)^{(2)}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2)}\) and \(p_0^{n+1}\) (ifuse_tfromp = T
).
end if
- Step 9.
React the full state and base state through a second time interval of \(\dt/2.\)
In
react_state
\(\rightarrow\) burner, we compute \(c_p\) and \(\xi_k\) for inputs to VODE using \((\rho,T,X)^{(2)}\).In
react_state
, we compute \(T^{n+1}\) using \((\rho,h,X)^{n+1}\) (ifuse_tfromp = F
) or \((\rho,X)^{n+1}\) and \(p_0^{n+1}\) (ifuse_tfromp = T
).
if
evolve_base_state = T
thenIn
make_gamma
, we compute \(\Gamma_1\) using \((\rho,X)^{n+1}\) and \(p_0^{n+1}\).
end if
- Step 10.
- Compute \(S^{n+1}\) for the final projection.if
make_explicit_thermal
thenIn
advance
beforemake_explicit_thermal
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{n+1}\).
end if
In
make_S
, we compute thermodynamic variables using \((\rho,T,X)^{n+1}\).
- Step 11.
- Update the velocity.if
dpdt_factor
\(>\) 0 thenIn
makePfromRhoH
, we compute a thermodynamic \(p^{n+1}\) for the volume discrepancy term using \((\rho,h,X)^{n+1}\).
end if
- Step 12.
Compute a new \(\dt.\)
make_plotfile
Temperature Usage
advance_timestep
- Step 1.
Define the average expansion at time \(t^\nph\) and the new \(w_0.\)
- Step 2.
Construct the provisional edge-based advective velocity, \(\uadvone.\)
- Step 3.
React the full state and base state through the first time interval of \(\dt/2.\)
In
react_state
\(\rightarrow\)burner
, we compute \(c_p\) and \(\xi_k\) for inputs to VODE using \((\rho,T,X)^n\).In
react_state
, we compute \(T^{(1)}\) using \((\rho,h,X)^{(1)}\) (ifuse_tfromp = F
) or \((\rho,X)^{(1)}\) and \(p_0^n\) (ifuse_tfromp = T
).
- Step 4.
- Advect the base state, then the full state, through a time interval of \(\dt.\)if
use_thermal_diffusion = T
thenIn
advance
beforemake_explicit_thermal
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{(1)}\).In
thermal_conduct
, we compute \(T^{(2),*}\) using \((\rho,h,X)^{(2),*}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2),*}\) and \(p_0^{n+1,*}\) (ifuse_tfromp = T
).
else
In
enthalpy_advance
, we compute \(T^{(2),*}\) using \((\rho,h,X)^{(2),*}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2),*}\) and \(p_0^{n+1,*}\) (ifuse_tfromp = T
).
end if
- Step 5.
React the full state through a second time interval of \(\dt/2.\)
In
react_state
\(\rightarrow\)burner
, we compute \(c_p\) and \(\xi_k\) for inputs to VODE using \((\rho,T,X)^{(2),*}\).In
react_state
, we compute \(T^{n+1,*}\) using \((\rho,h,X)^{n+1,*}\) (ifuse_tfromp = F
) or \((\rho,X)^{n+1,*}\) and \(p_0^{n+1,*}\) (ifuse_tfromp = T
).
- Step 6.
- Define a new average expansion rate at time \(t^\nph.\)if
use_thermal_diffusion = T
thenIn advance before
make_explicit_thermal
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{n+1,*}\).
end if
In
make_S
, we compute thermodynamic variables using \((\rho,T,X)^{n+1,*}\).
- Step 7.
Construct the final edge-based advective velocity, \(\uadvtwo.\)
- Step 8.
- Advect the base state, then the full state, through a time interval of \(\dt.\)if
use_thermal_diffusion = T
thenIn
advance
beforethermal_conduct
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{(2),*}\).In
thermal_conduct
, we compute \(T^{(2)}\) using \((\rho,h,X)^{(2)}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2)}\) and \(p_0^{n+1}\) (ifuse_tfromp = T
).
else
In
enthalpy_advance
, we compute \(T^{(2)}\) using \((\rho,h,X)^{(2)}\) (ifuse_tfromp = F
) or \((\rho,X)^{(2)}\) and \(p_0^{n+1}\) (ifuse_tfromp = T
).
end if
- Step 9.
React the full state and base state through a second time interval of \(\dt/2.\)
In
react_state
\(\rightarrow\)burner
, we compute \(c_p\) and \(\xi_k\) for inputs to VODE using \((\rho,T,X)^{(2)}\).In
react_state
, we compute \(T^{n+1}\) using \((\rho,h,X)^{n+1}\) (ifuse_tfromp = F
) or \((\rho,X)^{n+1}\) and \(p_0^{n+1}\) (ifuse_tfromp = T
).
- Step 10.
- Compute \(S^{n+1}\) for the final projection.if
make_explicit_thermal
thenIn
advance
beforemake_explicit_thermal
, we compute the coefficients for \(\nabla\cdot(\kth/c_p)\nabla h + \cdots\) using \((\rho,T,X)^{n+1}\).
end if
In
make_S
, we compute thermodynamic variables using \((\rho,T,X)^{n+1}\).
- Step 11.
Update the velocity.
- Step 12.
Compute a new \(\dt.\)