Back to module page · Back to alphabetical overview
Signature¶
stoic(normalized_c_c, normalized_x_c, normalized_x_d)
Summary¶
Compute the STOIC TVD correction in normalized-variable space.
Source¶
def stoic(normalized_c_c, normalized_x_c, normalized_x_d):
"""Compute the STOIC TVD correction in normalized-variable space."""
normalized_concentration_diff = np.maximum(
0,
np.where(
normalized_c_c
< normalized_x_c
* (normalized_x_d - normalized_x_c)
/ (
normalized_x_c
+ normalized_x_d
+ 2 * normalized_x_d * normalized_x_d
- 4 * normalized_x_d * normalized_x_c
),
normalized_x_d
* (1 - 3 * normalized_x_c + 2 * normalized_x_d)
/ (normalized_x_c * (1 - normalized_x_c))
- normalized_c_c, # noqa: E501
np.where(
normalized_c_c < normalized_x_c,
(
normalized_x_d
- normalized_x_c
+ (1 - normalized_x_d) * normalized_c_c
)
/ (1 - normalized_x_c)
- normalized_c_c, # noqa: E501
np.where(
normalized_c_c
< normalized_x_c
/ normalized_x_d
* (1 + normalized_x_d - normalized_x_c),
(
normalized_x_d * (normalized_x_d - normalized_x_c)
+ normalized_x_d
* (1 - normalized_x_d)
/ normalized_x_c
* normalized_c_c
)
/ (1 - normalized_x_c)
- normalized_c_c,
1 - normalized_c_c,
),
),
),
) # noqa: E501
return normalized_concentration_diff