ModelSettings#
- class fridom.shallowwater.model_settings.ModelSettings(grid: GridBase, **kwargs: any)[source]#
Bases:
ModelSettingsBaseModel settings for the 2D shallow water model.
Parameters#
- gridGrid
The grid object.
Methods
__init__(grid, **kwargs)diagnostic_state_constructor()Construct the diagnostic state vector from this model settings.
set_attributes(**kwargs)Set model settings attributes from keyword arguments.
setup([setup_mode])Set the model settings up.
setup_grid([setup_mode])Set the grid object up.
Set the model settings parameters up.
Construct the state vector from this model settings.
Attributes
The Rossby number.
The beta term of the Coriolis parameter (f=f0 + beta*y).
The phase speed of the gravity waves.
The variable c²(x,y) field.
custom_diagnostic_fieldsList of custom diagnostic fields.
custom_state_fieldsList of custom state fields.
diagnosticsThe module container for all diagnostics.
The constant term of the Coriolis parameter (f=f0 + beta*y).
The Coriolis parameter (f=f0 + beta*y).
gridThe spatial grid.
haloReturn the halo size of the model.
is_setupReturn whether the model settings are set up.
nan_checkerThe NaN checker object (default: NaNChecker).
Return a dictionary with all parameters of the model settings.
progress_barThe progress bar object (default: ProgressBar).
raise_error_when_something_goes_wrongRaise an error when something goes wrong.
restart_moduleThe restart module.
tendenciesThe module container for all tendencies.
time_stepperThe time stepper object (default: AdamBashforth).
timerThe timing module.
Examples using
fridom.shallowwater.ModelSettings#- model_name = 'ShallowWater'#
- property parameters: dict#
Return a dictionary with all parameters of the model settings.
Description#
This method should be overridden by the child class to return a dictionary with all parameters of the model settings. This dictionary is used to print the model settings in the __repr__ method.
- property f0: float#
The constant term of the Coriolis parameter (f=f0 + beta*y).
- property beta: float#
The beta term of the Coriolis parameter (f=f0 + beta*y).
Unscaled System#
For the unscaled system, the beta term is given by:
\[\beta = \frac{df}{dy} = \frac{2\Omega \cos(\phi)}{R}\]where \(\Omega\) is the angular velocity of the Earth, \(\phi\) is the latitude, and \(R\) is the radius of the Earth.
Scaled System#
In the scaled system, the beta term is given by:
\[\beta = \frac{\beta' L}{\Omega}\]where \(\beta'\) is the unscaled beta term, \(L\) is the domain extent in the y-direction, and \(\Omega\) is the angular velocity of the Earth. We can rewrite the domain extent in terms of the latitude extent \(\Delta \phi\):
\[L = R \Delta \phi\]where \(R\) is the radius of the Earth. Thus, the beta term in the scaled system is given by:
\[\beta = 2 \cos(\phi) \Delta \phi\]
- property f_coriolis: ScalarField#
The Coriolis parameter (f=f0 + beta*y).
- property csqr: float#
The phase speed of the gravity waves.
- property csqr_field: ScalarField#
The variable c²(x,y) field.
- property Ro: float#
The Rossby number.