Source code for fridom.nonhydro.modules.tendency_divergence
import fridom.framework as fr
[docs]
@fr.utils.jaxify
class TendencyDivergence(fr.modules.Module):
"""
This class computes the divergence of the tendency of the model.
The divergence of the tendency is required for the pressure solver.
"""
name = "Tendency Divergence"
[docs]
@fr.utils.jaxjit
def compute_divergence(self, dz: fr.StateBase) -> fr.FieldVariable:
"""
Compute the divergence of the tendency.
"""
dz.sync()
div = self.diff_module.div((dz.u, dz.v, dz.w))
return div
[docs]
@fr.modules.module_method
def update(self, mz: fr.ModelState) -> fr.ModelState:
mz.z_diag.div.arr = self.compute_divergence(mz.dz).arr
return mz