|
FlowSieve
3.0.0
Coarse Graining Routines
|
Provide namespace for global constants (physical and computational). More...
Namespaces | |
| consants | |
| Provide namespace for global constants (physical and computational). | |
Variables | |
| const double | constants::R_earth = 6371e3 |
| Mean radius of the Earth. More... | |
| const bool | constants::USE_HIGH_PRECISION_DISTANCE = false |
| If spatial resolution is very high on sphere (less than ~50 metres or so), and high presision is needed in distance calculations, turn this on. More... | |
| const double | constants::rho0 = 1025 |
| Mean fluid density. More... | |
| const double | constants::g = 9.81 |
| (constant) acceleration due to gravity. More... | |
| const int | constants::DiffOrd = 4 |
| Differentiation order for finite differencing (currently must be 2, 4, or 6). More... | |
| const double | constants::fill_value = -1e8 |
| Fill value used to indicate land values in output files. More... | |
| const signed short | constants::fill_value_s = -32767 |
| Fill value used to indicate land values in output files (signed short) More... | |
| const bool | constants::DEFORM_AROUND_LAND = false |
| Boolean indicating whether or not the kernel should deform around land. More... | |
| const bool | constants::FILTER_OVER_LAND = false |
| Boolean to indicate whether or not land values should be filled in with coarse-grained results. More... | |
| const bool | constants::ZONAL_KERNEL_ONLY = false |
| const bool | constants::EXTEND_DOMAIN_TO_POLES = true |
| Boolean to indicate whether or not the input domain should have the latitude extended to reach the poles. More... | |
| const bool | constants::CARTESIAN = false |
| Boolean indicating if the coordinate system is Cartesian. (If false, then spherical) More... | |
| const bool | constants::PERIODIC_X = true |
| Boolean indicating if the coordinate system is periodic in x / longitude. More... | |
| const bool | constants::PERIODIC_Y = false |
| Boolean indicating if the coordinate system is periodic in y / latitute. More... | |
| const bool | constants::UNIFORM_LON_GRID = true |
| Boolean indicating if the longitude grid is uniform. More... | |
| const bool | constants::UNIFORM_LAT_GRID = true |
| Boolean indicating if the latitude grid is uniform. More... | |
| const bool | constants::FULL_LON_SPAN = true |
| Boolean indicating if the provided longitude grid spans the full periodic domain. More... | |
| const bool | constants::COMP_VORT = true |
| Boolean indicating if vorticity should be computed. More... | |
| const bool | constants::COMP_TRANSFERS = true |
| Boolean indicating if non-linear transfers (Pi) should be computed. For coarse_grain.x, this is required to get fine (sub-filter) KE. More... | |
| const bool | constants::COMP_BC_TRANSFERS = false |
| Boolean indicating if baroclinic transfers (Lambda^m) should be computed. More... | |
| const bool | constants::DO_OKUBOWEISS_ANALYSIS = false |
| Boolean to indicate if post-processing should also bin by Okubo-Weiss. More... | |
| const bool | constants::MINIMAL_OUTPUT = false |
| Boolean indicating if user wants a minimal output. More... | |
| const bool | constants::NO_FULL_OUTPUTS = false |
| Indicates that no full fields should be produced. More... | |
| const bool | constants::CAST_TO_SINGLE = true |
| Boolean indicating if user wants to cast to float (single) output (reduces output size by factor 2, but also reduces precision) More... | |
| const bool | constants::CAST_TO_INT = false |
| Boolean indicating if user wants to cast to int output (further reduces output size by factor 2, but also reduces precision) More... | |
| const bool | constants::DO_TIMING = false |
| Boolean indicating if we want to output internal timings. More... | |
| const bool | constants::APPLY_POSTPROCESS = false |
| Boolean indicating whether or not the postprocess routines should be applied. More... | |
| const bool | constants::POSTPROCESS_DO_ZONAL_MEANS = true |
| Boolean indicating whether or not the postprocess routines should include zonal means. More... | |
| const bool | constants::POSTPROCESS_DO_TIME_MEANS = true |
| Boolean indicating whether or not the postprocess routines should include time means (i.e. spatial maps) More... | |
| const int | constants::KERNEL_OPT = 4 |
| Integer flag indicating the choice of kernel. More... | |
| const double | constants::KernPad = 2.5 |
| Scale factor for kernel search radius. More... | |
| const std::map< std::string, std::string > | constants::variable_descriptions |
| A dictionary of variable descriptions to provide details in netcdf outputs. More... | |
| const std::map< std::string, std::string > | constants::variable_units |
| A dictionary of variable units to provide details in netcdf outputs. More... | |
Provide namespace for global constants (physical and computational).
| const bool constants::APPLY_POSTPROCESS = false |
Boolean indicating whether or not the postprocess routines should be applied.
| APPLY_POSTPROCESS |
| const bool constants::CARTESIAN = false |
Boolean indicating if the coordinate system is Cartesian. (If false, then spherical)
| CARTESIAN |
| const bool constants::CAST_TO_INT = false |
Boolean indicating if user wants to cast to int output (further reduces output size by factor 2, but also reduces precision)
| CAST_TO_INT |
| const bool constants::CAST_TO_SINGLE = true |
Boolean indicating if user wants to cast to float (single) output (reduces output size by factor 2, but also reduces precision)
| CAST_TO_SINGLE |
| const bool constants::COMP_BC_TRANSFERS = false |
Boolean indicating if baroclinic transfers (Lambda^m) should be computed.
| COMP_BC_TRANSFERS |
| const bool constants::COMP_TRANSFERS = true |
Boolean indicating if non-linear transfers (Pi) should be computed. For coarse_grain.x, this is required to get fine (sub-filter) KE.
| COMP_TRANSFERS |
| const bool constants::COMP_VORT = true |
Boolean indicating if vorticity should be computed.
| COMP_VORT |
| const bool constants::DEFORM_AROUND_LAND = false |
Boolean indicating whether or not the kernel should deform around land.
| DEFORM_AROUND_LAND | If true, land is given zero weight (i.e. not factored into local average). If false, land is included in local average (treated as zero velocity |
| const int constants::DiffOrd = 4 |
Differentiation order for finite differencing (currently must be 2, 4, or 6).
| DiffOrd |
| const bool constants::DO_OKUBOWEISS_ANALYSIS = false |
Boolean to indicate if post-processing should also bin by Okubo-Weiss.
| DO_OKUBOWEISS_ANALYSIS |
| const bool constants::DO_TIMING = false |
Boolean indicating if we want to output internal timings.
| DO_TIMING |
| const bool constants::EXTEND_DOMAIN_TO_POLES = true |
Boolean to indicate whether or not the input domain should have the latitude extended to reach the poles.
| EXTEND_DOMAIN_TO_POLES | If true, 'land' is added with a uniform grid spacing to make the domain reach both north and south poles If false, nothing happens. |
| const double constants::fill_value = -1e8 |
Fill value used to indicate land values in output files.
| fill_value |
| const signed short constants::fill_value_s = -32767 |
Fill value used to indicate land values in output files (signed short)
| fill_value_s |
| const bool constants::FILTER_OVER_LAND = false |
Boolean to indicate whether or not land values should be filled in with coarse-grained results.
| FILTER_OVER_LAND | If true, land values are filled in with the results of coarse-graining. Masks are removed when variables are loaded and filled in with constants If false, land values are maintained as land, and masked out |
Note that this does NOT affect the shape of filtering kernels.
| const bool constants::FULL_LON_SPAN = true |
Boolean indicating if the provided longitude grid spans the full periodic domain.
| FULL_LON_SPAN | i.e. is the first longitude point beside the last longitude point? |
This flag enables computational optimizations by allowing the kernel to simply be translated through lon, instead of having to recompute for each longitude index.
| const double constants::g = 9.81 |
(constant) acceleration due to gravity.
| g |
| const int constants::KERNEL_OPT = 4 |
Integer flag indicating the choice of kernel.
| KERNEL_OPT | 0 = tophat 1 = Hyper gaus ( exp( -x^4 ) ) 2 = Gaus ( exp( -x^2 ) ) 3 = sinc ( sinc( pi * x ) ) 4 = tanh ( 1 - tanh( (x - 1) / (0.1) ) ) |
| const double constants::KernPad = 2.5 |
Scale factor for kernel search radius.
| KernPad | Filter integral applied in circle of radius (filt_scale/2) * KernPad |
| const bool constants::MINIMAL_OUTPUT = false |
Boolean indicating if user wants a minimal output.
| MINIMAL_OUTPUT | Removes: fine velocities, coarse/fine KE, divergences |
| const bool constants::NO_FULL_OUTPUTS = false |
Indicates that no full fields should be produced.
| NO_FULL_OUTPUTS | Only results from APPLY_POSTPROCESS will be produced. |
If NO_FULL_OUTPUTS and not(APPLY_POSTPROCESS), the no outputs at all will be produced, so the code will simply halt immediately.
| const bool constants::PERIODIC_X = true |
Boolean indicating if the coordinate system is periodic in x / longitude.
| PERIODIC_X |
| const bool constants::PERIODIC_Y = false |
Boolean indicating if the coordinate system is periodic in y / latitute.
| PERIODIC_Y |
| const bool constants::POSTPROCESS_DO_TIME_MEANS = true |
Boolean indicating whether or not the postprocess routines should include time means (i.e. spatial maps)
| POSTPROCESS_DO_TIME_MEANS |
| const bool constants::POSTPROCESS_DO_ZONAL_MEANS = true |
Boolean indicating whether or not the postprocess routines should include zonal means.
| POSTPROCESS_DO_ZONAL_MEANS |
| const double constants::R_earth = 6371e3 |
Mean radius of the Earth.
| R_earth |
| const double constants::rho0 = 1025 |
Mean fluid density.
| rho0 |
| const bool constants::UNIFORM_LAT_GRID = true |
Boolean indicating if the latitude grid is uniform.
| UNIFORM_LAT_GRID |
| const bool constants::UNIFORM_LON_GRID = true |
Boolean indicating if the longitude grid is uniform.
| UNIFORM_LON_GRID |
| const bool constants::USE_HIGH_PRECISION_DISTANCE = false |
If spatial resolution is very high on sphere (less than ~50 metres or so), and high presision is needed in distance calculations, turn this on.
| USE_HIGH_PRECISION_DISTANCE | The default spherical distance caluclation, spherical law of cosines, has floating point errors for small distances (a couple metres or so). However, so long as your grid is very high resolution, this shouldn't be an issue. This is particularly true if: you are also using a continuous kernel and the filtering scales themselves also aren't very short (couple of metres or so). |
The test routine (Tests/distance_formulas.cpp) uses both methods on a specified grid and outputs the result. If you think you might need the high precision scheme, test it out there first.
| const std::map< std::string, std::string > constants::variable_descriptions |
A dictionary of variable descriptions to provide details in netcdf outputs.
| variable_descriptions |
| const std::map< std::string, std::string > constants::variable_units |
A dictionary of variable units to provide details in netcdf outputs.
| variable_units |
| const bool constants::ZONAL_KERNEL_ONLY = false |
| ZONAL_KERNEL_ONLY |
1.8.13