|
ASPECT
|

Public Types | |
| enum | FastscapeOutputVariable { FastscapeOutputVariable::kf, FastscapeOutputVariable::kd, FastscapeOutputVariable::uplift_rate } |
Static Public Member Functions | |
| static void | declare_parameters (ParameterHandler &prm) |
Static Public Member Functions inherited from aspect::Plugins::InterfaceBase | |
| static void | declare_parameters (ParameterHandler &prm) |
Static Public Member Functions inherited from aspect::SimulatorAccess< dim > | |
| static void | get_composition_values_at_q_point (const std::vector< std::vector< double >> &composition_values, const unsigned int q, std::vector< double > &composition_values_at_q_point) |
Public Attributes | |
| FastscapeOutputVariable | additional_output_variable |
Private Member Functions | |
| void | set_ghost_nodes (std::vector< double > &elevation, std::vector< double > &velocity_x, std::vector< double > &velocity_y, std::vector< double > &velocity_z, std::vector< double > &bedrock_transport_coefficient_array, const double &fastscape_timestep_in_years, const bool init) const |
| bool | is_ghost_node (const unsigned int &index, const bool &exclude_boundaries) const |
| void | fill_fastscape_arrays (std::vector< double > &elevation, std::vector< double > &bedrock_transport_coefficient_array, std::vector< double > &bedrock_river_incision_rate_array, std::vector< double > &velocity_x, std::vector< double > &velocity_y, std::vector< double > &velocity_z, std::vector< std::vector< double >> &temporary_variables) const |
| std::vector< std::vector< double > > | get_aspect_values () const |
| void | initialize_fastscape (std::vector< double > &elevation, std::vector< double > &basement, std::vector< double > &silt_fraction, bool restart) const |
| void | execute_fastscape (std::vector< double > &elevation, std::vector< double > &extra_vtk_field, std::vector< double > &velocity_x, std::vector< double > &velocity_y, std::vector< double > &velocity_z, std::vector< double > &bedrock_transport_coefficient_array, const double &fastscape_timestep_in_years, const unsigned int &fastscape_iterations) const |
| void | apply_orographic_controls (const std::vector< double > &elevation, std::vector< double > &bedrock_river_incision_rate_array, std::vector< double > &bedrock_transport_coefficient_array) const |
| Table< dim, double > | fill_data_table (const std::vector< double > &values, const TableIndices< dim > &size_idx, const unsigned int &fastscape_nx, const unsigned int &fastscape_ny) const |
A plugin that utilizes the landscape evolution code FastScape to deform the ASPECT boundary through advection, uplift, hillslope diffusion, sediment deposition, marine diffusion, and the stream power law, which describes river incision.
Definition at line 42 of file fastscape.h.
|
strong |
Enumeration for selecting which type of additional output to use in Fastscape vtk. Select between Fastscape variables.
| Enumerator | |
|---|---|
| kf | |
| kd | |
| uplift_rate | |
Definition at line 105 of file fastscape.h.
|
override |
Destructor for FastScape.
|
overridevirtual |
Initialize variables for FastScape.
Reimplemented from aspect::Plugins::InterfaceBase.
|
overridevirtual |
Update input variables for FastScape.
Reimplemented from aspect::Plugins::InterfaceBase.
|
overridevirtual |
A function that creates constraints for the velocity of certain mesh vertices (e.g. the surface vertices) for a specific boundary. The calling class will respect these constraints when computing the new vertex positions.
Reimplemented from aspect::MeshDeformation::Interface< dim >.
|
overridevirtual |
This function returns the compositional field value at the requested point on the requested boundary. If the fastscape plugin cannot provide a boundary condition for a field (e.g. for a field storing viscoelastic stresses), a value of zero is returned.
Return the composition that is to hold at a particular position on the boundary of the domain.
| boundary_indicator | The boundary indicator of the part of the boundary of the domain on which the point is located at which we are requesting the composition. |
| position | The position of the point at which we ask for the composition. |
| compositional_field | The index of the compositional field between 0 and parameters.n_compositional_fields. |
compositional_field at the position position. Reimplemented from aspect::MeshDeformation::Interface< dim >.
|
overridevirtual |
Returns whether or not the plugin requires surface stabilization
Reimplemented from aspect::MeshDeformation::Interface< dim >.
|
static |
Declare parameters for the FastScape plugin.
|
overridevirtual |
Parse parameters for the FastScape plugin.
Reimplemented from aspect::Plugins::InterfaceBase.
| void aspect::MeshDeformation::FastScape< dim >::serialize | ( | Archive & | ar, |
| const unsigned int | version | ||
| ) |
Serialize the contents of this class as far as they are not read from input parameter files.
|
overridevirtual |
Save the state of this object.
Reimplemented from aspect::Plugins::InterfaceBase.
|
overridevirtual |
Restore the state of the object.
Reimplemented from aspect::Plugins::InterfaceBase.
|
private |
Function used to set the FastScape ghost nodes. FastScape boundaries are not uplifted or periodic for advection and diffusion. By using a layer of extra nodes in the FastScape model, we can avoid seeing FastScape boundary effects within ASPECT. Similarly, we can use these nodes to have fully periodic boundaries, where we check the flow direction and update the FastScape ghost nodes, and the nodes one layer inward (boundary nodes in ASPECT) to match the parameters on the other side (vx, vy, vz, h). This is done every ASPECT timestep before running FastScape.
|
private |
Function to determine whether the current index is a ghost node
|
private |
Function to fill the Fastscape arrays (height and velocities) with the data received from ASPECT in the correct index order.
|
private |
|
private |
|
private |
Execute FastScape
|
private |
|
private |
Fill velocity data table to be interpolated back onto the ASPECT mesh.
| FastscapeOutputVariable aspect::MeshDeformation::FastScape< dim >::additional_output_variable |
Definition at line 112 of file fastscape.h.
|
private |
Suggestion for the number of FastScape steps to run for every ASPECT timestep, where the FastScape timestep is determined by ASPECT_timestep_length divided by this parameter.
This variable is read from the parameter file through a parameter called 'Number of fastscape timesteps per aspect timestep'.
Definition at line 215 of file fastscape.h.
|
private |
Maximum timestep allowed for FastScape, if the suggested timestep exceeds this limit it is repeatedly divided by 2 until the final timestep is smaller than this parameter. This variable is read from the parameter file through a parameter called 'Maximum timestep length'.
Definition at line 222 of file fastscape.h.
|
private |
FastScape cell size in X.
Definition at line 227 of file fastscape.h.
|
private |
FastScape cell size in Y.
Definition at line 232 of file fastscape.h.
|
private |
FastScape X extent (ASPECT X extent + 2*dx for ghost nodes).
Definition at line 237 of file fastscape.h.
|
private |
Fastscape Y extent (ASPECT Y extent + 2*dy for ghost nodes).
Definition at line 242 of file fastscape.h.
|
private |
User set FastScape Y extent for a 2D ASPECT model. This variable is read from the parameter file through a parameter called 'Y extent in 2d'.
Definition at line 248 of file fastscape.h.
|
private |
Number of x points in FastScape array.
Definition at line 253 of file fastscape.h.
|
private |
Number of y points in FastScape array.
Definition at line 258 of file fastscape.h.
|
private |
Vertical exaggeration in FastScape visualization. This variable is read from the parameter file through a parameter called 'Vertical exaggeration'.
Definition at line 264 of file fastscape.h.
|
private |
How many levels FastScape should be refined above the maximum ASPECT surface resolution. This variable is read from the parameter file through a parameter called 'Additional fastscape refinement'.
Definition at line 270 of file fastscape.h.
|
private |
Maximum expected refinement level at ASPECT's surface. This and resolution_difference are required to properly transfer node data from ASPECT to FastScape. This variable is read from the parameter file through a parameter called 'Maximum surface refinement level'.
Definition at line 278 of file fastscape.h.
|
private |
Difference in refinement levels expected at the ASPECT surface, where this would be set to 2 if 3 refinement levels are set at the surface. This and surface_resolution are required to properly transfer node data from ASPECT to FastScape.
TODO: Should this be kept this way, or make it so the input is the expected levels of refinement at the surface, and we can subtract one within the code? Also, it would be good to find a way to check these are correct, because they are a common source of errors. This variable is read from the parameter file through a parameter called 'Surface refinement difference'.
Definition at line 292 of file fastscape.h.
|
private |
If set to true, the FastScape surface is averaged along Y and returned to ASPECT. If set to false, the center slice of the FastScape model is returned to ASPECT. This variable is read from the parameter file through a parameter called 'Average out of plane surface topography in 2d'.
Definition at line 300 of file fastscape.h.
|
private |
Seed number for initial topography noise in FastScape. This variable is read from the parameter file through a parameter called 'Fastscape seed'.
Definition at line 306 of file fastscape.h.
|
private |
Variable to hold ASPECT domain extents.
Definition at line 311 of file fastscape.h.
|
private |
Table for interpolating FastScape surface velocities back to ASPECT.
Definition at line 316 of file fastscape.h.
|
private |
Whether or not to use the ghost nodes. This variable is read from the parameter file through a parameter called 'Use ghost nodes'.
Definition at line 322 of file fastscape.h.
|
private |
Magnitude (m) of the initial noise applied to FastScape. Applied as either a + or - value to the topography such that the total difference can be up to 2*noise_elevation. This variable is read from the parameter file through a parameter called 'Initial noise magnitude'.
Definition at line 330 of file fastscape.h.
|
private |
Sediment rain in m/yr, added as a flat increase to the FastScape surface in the marine domain every ASPECT timestep before running FastScape. This variable is read from the parameter file through a parameter called 'Sediment rain rates'.
Definition at line 337 of file fastscape.h.
|
private |
Time at which each interval of sediment_rain_rates is active. Should contain one less value than sediment_rain_rates, assuming that sediment_rain_rates[0] is applied from model time 0 until sediment_rain_times[0]. This variable is read from the parameter file through a parameter called 'Sediment rain time intervals'.
Definition at line 345 of file fastscape.h.
|
private |
Flag for having FastScape advect/uplift the surface. If the free surface is used in conjunction with FastScape, this can be set to false, then FastScape will only apply erosion/deposition to the surface and not advect or uplift it. This variable is read from the parameter file through a parameter called 'Uplift and advect with fastscape'.
Definition at line 353 of file fastscape.h.
|
private |
Node tolerance for how close a ASPECT node must be to the FastScape node for the value to be transferred. This is only necessary if use_v is set to 0 and the free surface is used to advect the surface with a normal projection, or if there is a surface refinement level difference leading to excess interpolation points in areas of high ASPECT resolution. This variable is read from the parameter file through a parameter called 'Node tolerance'.
Definition at line 363 of file fastscape.h.
|
private |
Interval between the generation of graphical output. This parameter is read from the input file and consequently is not part of the state that needs to be saved and restored. This variable is read from the parameter file through a parameter called 'Time between graphical output'.
Definition at line 371 of file fastscape.h.
|
mutableprivate |
A time (in seconds) at which the last graphical output was supposed to be produced. Used to check for the next necessary output time.
Definition at line 377 of file fastscape.h.
|
private |
FastScape bottom boundary condition that determines topography at the FastScape bottom boundary. Where 1 represents a fixed height boundary (though this can still be uplifted through uplift velocities), and 0 a reflective boundary. When two opposing boundaries are reflective (e.g., top and bottom are both zero), then the boundaries become cyclic. This variable is read from the parameter file through a parameter called 'Front'.
Definition at line 391 of file fastscape.h.
|
private |
FastScape top boundary condition that determines topography at the FastScape top boundary. Where 1 represents a fixed height boundary (though this can still be uplifted through uplift velocities), and 0 a reflective boundary. When two opposing boundaries are reflective (e.g., top and bottom are both zero), then the boundaries become cyclic. This variable is read from the parameter file through a parameter called 'Back'.
Definition at line 400 of file fastscape.h.
|
private |
FastScape right boundary condition that determines topography at the FastScape right boundary. Where 1 represents a fixed height boundary (though this can still be uplifted through uplift velocities), and 0 a reflective boundary. When two opposing boundaries are reflective (e.g., left and right are both zero), then the boundaries become cyclic. This variable is read from the parameter file through a parameter called 'Right'.
Definition at line 409 of file fastscape.h.
|
private |
FastScape left boundary condition that determines topography at the FastScape left boundary. Where 1 represents a fixed height boundary (though this can still be uplifted through uplift velocities), and 0 a reflective boundary. When two opposing boundaries are reflective (e.g., left and right are both zero), then the boundaries become cyclic. This variable is read from the parameter file through a parameter called 'Left'.
Definition at line 418 of file fastscape.h.
|
private |
Whether the FastScape front and back boundaries are periodic even though the ghost nodes are set to 'fixed'. This variable is read from the parameter file through a parameter called 'Back front ghost nodes periodic'.
Definition at line 426 of file fastscape.h.
|
private |
Whether the FastScape left and right boundaries are periodic even though the ghost nodes are set to 'fixed'. This variable is read from the parameter file through a parameter called 'Left right ghost nodes periodic'.
Definition at line 434 of file fastscape.h.
|
private |
Integer that holds the full boundary conditions sent to FastScape (e.g., 1111).
Definition at line 439 of file fastscape.h.
|
private |
Prescribed flux per unit length into the model through the bottom boundary (m^2/yr). This variable is read from the parameter file through a parameter called 'Front mass flux'.
Definition at line 445 of file fastscape.h.
|
private |
Prescribed flux per unit length into the model through the top boundary (m^2/yr). This variable is read from the parameter file through a parameter called 'Back mass flux'.
Definition at line 451 of file fastscape.h.
|
private |
Prescribed flux per unit length into the model through the right boundary (m^2/yr). This variable is read from the parameter file through a parameter called 'Right mass flux'.
Definition at line 457 of file fastscape.h.
|
private |
Prescribed flux per unit length into the model through the left boundary (m^2/yr). This variable is read from the parameter file through a parameter called 'Left mass flux'.
Definition at line 463 of file fastscape.h.
|
private |
Drainage area exponent for the stream power law. ( \(m\) variable in FastScape surface equation.) This variable is read from the parameter file through a parameter called 'Drainage area exponent'.
Definition at line 477 of file fastscape.h.
|
private |
Slope exponent for the stream power law. ( \(n\) variable in FastScape surface equation.) This variable is read from the parameter file through a parameter called 'Slope exponent'.
Definition at line 483 of file fastscape.h.
|
private |
Slope exponent for multi-direction flow, where 0 is uniform, and 10 is steepest descent. (-1 varies with slope.) ( \(p\) variable in FastScape surface equation.) This variable is read from the parameter file through a parameter called 'Multi-direction slope exponent'.
Definition at line 490 of file fastscape.h.
|
private |
Bedrock deposition coefficient. Higher values deposit more sediment inside the domain. ( \(G\) variable in FastScape surface equation.) This variable is read from the parameter file through a parameter called 'Bedrock deposition coefficient'.
Definition at line 497 of file fastscape.h.
|
private |
Sediment deposition coefficient. Higher values deposit more sediment inside the domain. When set to -1 this is identical to the bedrock value. ( \(G\) variable in FastScape surface equation applied to sediment.) This variable is read from the parameter file through a parameter called 'Sediment deposition coefficient'.
Definition at line 505 of file fastscape.h.
|
private |
Function of bedrock river incision rate (kf) for the stream power law. Represents the parameter kf in the FastScape landscape evolution equation. Units: \({m^(1-2drainage_area_exponent)/yr}\) if "Use years instead of seconds in output" is true; otherwise, the units are \({m^(1-2drainage_area_exponent)/s}\). Then a time scale factor will be applied to convert it into \({m^(1-2drainage_area_exponent)/yr}\) for Fastscape. This function is used only if use_kf_distribution_function is set to true.
Definition at line 515 of file fastscape.h.
|
private |
Flag to choose if a function of river incision rate for the stream power law will be applied. This variable is read from the parameter file through a parameter called 'Use kf distribution function'.
Definition at line 521 of file fastscape.h.
|
private |
Constant bedrock river incision rate (kf) for the stream power law. Represents the parameter kf in the FastScape landscape evolution equation. Units: \({m^(1-2drainage_area_exponent)/yr}\) if "Use years instead of seconds in output" is true; otherwise, the units are \({m^(1-2drainage_area_exponent)/s}\). Then a time scale factor will be applied to convert it into \({m^(1-2drainage_area_exponent)/yr}\) for Fastscape. This variable is read from the parameter file through a parameter called 'Bedrock river incision rate'.
Definition at line 531 of file fastscape.h.
|
private |
Sediment river incision rate for the stream power law. Units: \({m^(1-2drainage_area_exponent)/yr}\) if "Use years instead of seconds in output" is true; otherwise, the units are \({m^(1-2drainage_area_exponent)/s}\). Then a time scale factor will be applied to convert it into \({m^(1-2drainage_area_exponent)/yr}\) for Fastscape. When set to -1 this is identical to the bedrock value. ( \(kf\) variable in FastScape surface equation applied to sediment.) This variable is read from the parameter file through a parameter called 'Sediment river incision rate'.
Definition at line 542 of file fastscape.h.
|
private |
Function of bedrock transport coefficient for hillslope diffusion. Represents the parameter kd in the FastScape landscape evolution equation. Units: \({m^2/yr}\) if "Use years instead of seconds in output" is true; otherwise, the units are \({m^2/s}\). Then a time scale factor will be applied to convert it into \({m^2/yr}\) for Fastscape. This function is used only if use_kd_distribution_function is set to true.
Definition at line 552 of file fastscape.h.
|
private |
Flag for using parsed function vs constant This variable is read from the parameter file through a parameter called 'Use kd distribution function'.
Definition at line 558 of file fastscape.h.
|
private |
Constant bedrock transport coefficient value for hillslope diffusion Units: \({m^2/yr}\) if "Use years instead of seconds in output" is true; otherwise, the units are \({m^2/s}\). Then a time scale factor will be applied to convert it into \({m^2/yr}\) for Fastscape. This function is only used only if use_kf_distribution_function is false. This variable is read from the parameter file through a parameter called 'Bedrock diffusivity'.
Definition at line 568 of file fastscape.h.
|
private |
Sediment transport coefficient for hillslope diffusion. Units: \({m^2/yr}\) if "Use years instead of seconds in output" is true; otherwise, the units are \({m^2/s}\). Then a time scale factor will be applied to convert it into \({m^2/yr}\) for Fastscape. When set to -1 this is identical to the bedrock value. (kd in FastScape surface equation applied to sediment). This variable is read from the parameter file through a parameter called 'Sediment diffusivity'.
Definition at line 579 of file fastscape.h.
|
private |
Fastscape sea level (m), set relative to the ASPECT surface where a sea level of zero will represent the initial maximum unperturbed Y (2D) or Z (3D) extent of the ASPECT domain. A negative value of the sea level means the sea level lies below the initial unperturbed top boundary of the domain. The sea level value can be either constant or a time dependent user-defined function. User defined constant sea level value (m). This variable is read from the parameter file through a parameter called 'Sea level'.
Definition at line 602 of file fastscape.h.
|
private |
The user defined 1D function of time-dependent sea level.
Definition at line 607 of file fastscape.h.
|
private |
Whether to use a function to define sea level. This variable is read from the parameter file through a parameter called 'Use sea level function'.
Definition at line 613 of file fastscape.h.
|
private |
Parameters to set an extra erosional base level on the ghost nodes that differs from sea level. This variable is read from the parameter file through a parameter called 'Use a fixed erosional base level'.
Definition at line 620 of file fastscape.h.
|
private |
Height of the extra erosional base level. This variable is read from the parameter file through a parameter called 'Erosional base level'.
Definition at line 626 of file fastscape.h.
|
private |
Surface porosity for sand. This variable is read from the parameter file through a parameter called 'Sand porosity'.
Definition at line 632 of file fastscape.h.
|
private |
Surface porosity for silt. This variable is read from the parameter file through a parameter called 'Silt porosity'.
Definition at line 638 of file fastscape.h.
|
private |
Sands e-folding depth for exponential porosity law (m). This variable is read from the parameter file through a parameter called 'Sand e-folding depth'.
Definition at line 644 of file fastscape.h.
|
private |
Silts e-folding depth for exponential porosity law (m). This variable is read from the parameter file through a parameter called 'Silt e-folding depth'.
Definition at line 650 of file fastscape.h.
|
private |
Silt fraction of material entering the marine domain. This variable is read from the parameter file through a parameter called 'Silt fraction'.
Definition at line 656 of file fastscape.h.
|
private |
Averaging depth/thickness for sand-silt equation (m). This variable is read from the parameter file through a parameter called 'Depth averaging thickness'.
Definition at line 662 of file fastscape.h.
|
private |
Sand marine transport coefficient. (marine diffusion, m^2/yr.) This variable is read from the parameter file through a parameter called 'Sand transport coefficient'.
Definition at line 668 of file fastscape.h.
|
private |
Silt marine transport coefficient. (marine diffusion, m^2/yr.) This variable is read from the parameter file through a parameter called 'Silt transport coefficient'.
Definition at line 674 of file fastscape.h.
|
private |
Flag to use the marine component of FastScape. This variable is read from the parameter file through a parameter called 'Use marine component'.
Definition at line 680 of file fastscape.h.
|
private |
Set a flat height (m) after which the flat_erosional_factor is applied to the bedrock river incision rate and transport coefficient. This variable is read from the parameter file through a parameter called 'Orographic elevation control'.
Definition at line 695 of file fastscape.h.
|
private |
Set the height (m) after which the model will track the ridge line and based on the wind direction will apply the wind_barrier_erosional_factor to the bedrock river incision rate and transport coefficient. This variable is read from the parameter file through a parameter called 'Orographic wind barrier height'.
Definition at line 703 of file fastscape.h.
|
private |
Wind direction for wind_barrier_erosional_factor. This variable is read from the parameter file through a parameter called 'Wind direction'.
Definition at line 709 of file fastscape.h.
|
private |
Factor to multiply the bedrock river incision rate and transport coefficient by depending on them flat_elevation. This variable is read from the parameter file through a parameter called 'Elevation factor'.
Definition at line 716 of file fastscape.h.
|
private |
Factor to multiply the bedrock river incision rate and transport coefficient by depending on them wind_barrier_elevation and wind direction. This variable is read from the parameter file through a parameter called 'Wind barrier factor'.
Definition at line 723 of file fastscape.h.
|
private |
Flag to stack both orographic controls. This variable is read from the parameter file through a parameter called 'Stack orographic controls'.
Definition at line 729 of file fastscape.h.
|
private |
Flag to use orographic controls.
This variable is read from the parameter file through a parameter called 'Flag to use orographic controls'.
Definition at line 736 of file fastscape.h.