Diagnostics¶
Diagnostics are separate objects (instances of subclasses of VerosDiagnostic)
responsible for handling I/O, restart mechanics, and monitoring of the numerical
solution. All available diagnostics are instantiated and added to a dictionary
attribute VerosState.diagnostics (with a key determined by their name attribute).
Options for diagnostics may be set during the VerosSetup.set_diagnostics() method:
class MyModelSetup(VerosSetup):
...
def set_diagnostics(self, vs):
vs.diagnostics['averages'].output_variables = ['psi','u','v']
vs.diagnostics['averages'].sampling_frequency = 3600.
vs.diagnostics['snapshot'].output_variables += ['du']
Base class¶
This class implements some common logic for all diagnostics. This makes it easy to write your own diagnostics: Just derive from this class, and implement the virtual functions.
-
class
veros.diagnostics.diagnostic.VerosDiagnostic(vs)[source]¶ Bases:
objectBase class for diagnostics. Provides an interface and wrappers for common I/O.
Any diagnostic needs to implement the five interface methods and set some attributes.
-
name= None¶ Name that identifies the current diagnostic
-
initialize(vs)¶ Called at the end of setup. Use this to process user settings and handle setup.
-
diagnose(vs)¶ Called with frequency
sampling_frequency.
-
output(vs)¶ Called with frequency
output_frequency.
-
write_restart(vs)¶ Responsible for writing restart files.
-
read_restart(vs)¶ Responsible for reading restart files.
-
Available diagnostics¶
Currently, the following diagnostics are implemented and added to
VerosState.diagnostics:
Snapshot¶
-
class
veros.diagnostics.snapshot.Snapshot(vs)[source]¶ Bases:
veros.diagnostics.diagnostic.VerosDiagnosticWrites snapshots of the current solution. Also reads and writes the main restart data required for restarting a Veros simulation.
-
output_path= '{identifier}.snapshot.nc'¶ File to write to. May contain format strings that are replaced with Veros attributes.
-
name= 'snapshot'¶
-
output_frequency= None¶ Frequency (in seconds) in which output is written.
-
output_variables= None¶ Variables to be written to output. Defaults to all Veros variables that have the attribute
output.
-
restart_variables= None¶ Variables to be written to restart. Defaults to all Veros variables that have the attribute
write_to_restart.
-
Averages¶
-
class
veros.diagnostics.averages.Averages(vs)[source]¶ Bases:
veros.diagnostics.diagnostic.VerosDiagnosticTime average output diagnostic.
All registered variables are summed up when
diagnose()is called, and averaged and output upon callingoutput().-
name= 'averages'¶
-
output_path= '{identifier}.averages.nc'¶ File to write to. May contain format strings that are replaced with Veros attributes.
-
output_variables= None¶ Iterable containing all variables to be averaged. Changes have no effect after
initializehas been called.
-
output_frequency= None¶ Frequency (in seconds) in which output is written.
-
sampling_frequency= None¶ Frequency (in seconds) in which variables are accumulated.
-
CFL monitor¶
-
class
veros.diagnostics.cfl_monitor.CFLMonitor(vs)[source]¶ Bases:
veros.diagnostics.diagnostic.VerosDiagnosticDiagnostic monitoring the maximum CFL number of the solution to detect instabilities.
Writes output to stdout (no binary output).
-
name= 'cfl_monitor'¶
-
Tracer monitor¶
-
class
veros.diagnostics.tracer_monitor.TracerMonitor(vs)[source]¶ Bases:
veros.diagnostics.diagnostic.VerosDiagnosticDiagnostic monitoring global tracer contents / fluxes.
Writes output to stdout (no binary output).
-
name= 'tracer_monitor'¶
-
output_frequency= None¶ Frequency (in seconds) in which output is written.
-
Energy¶
-
class
veros.diagnostics.energy.Energy(vs)[source]¶ Bases:
veros.diagnostics.diagnostic.VerosDiagnosticDiagnose globally averaged energy cycle. Also averages energy in time.
-
name= 'energy'¶
-
output_path= '{identifier}.energy.nc'¶ File to write to. May contain format strings that are replaced with Veros attributes.
-
output_frequency= None¶ Frequency (in seconds) in which output is written.
-
sampling_frequency= None¶ Frequency (in seconds) in which variables are accumulated.
-
Overturning¶
-
class
veros.diagnostics.overturning.Overturning(vs)[source]¶ Bases:
veros.diagnostics.diagnostic.VerosDiagnosticIsopycnal overturning diagnostic. Computes and writes vertical streamfunctions (zonally averaged).
-
name= 'overturning'¶
-
output_path= '{identifier}.overturning.nc'¶ File to write to. May contain format strings that are replaced with Veros attributes.
-
output_frequency= None¶ Frequency (in seconds) in which output is written.
-
sampling_frequency= None¶ Frequency (in seconds) in which variables are accumulated.
-
p_ref= 2000.0¶ Reference pressure for isopycnals
-
Biogeochemistry¶
This module monitors total phosphate and produces interaction graphs for the biogeochemistry module
-
class
veros.diagnostics.npzd.NPZDMonitor(setup)[source]¶ Bases:
veros.diagnostics.diagnostic.VerosDiagnosticDiagnostic monitoring nutrients and plankton concentrations
-
name= 'npzd'¶
-
output_frequency= None¶ Frequency (in seconds) in which output is written
-
save_graph= False¶ Whether or not to save a graph of the selected dynamics
-