ASPECT
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
aspect::MeshDeformation::FastScape< dim > Class Template Reference
Inheritance diagram for aspect::MeshDeformation::FastScape< dim >:
Inheritance graph
[legend]

Public Types

enum  FastscapeOutputVariable { FastscapeOutputVariable::kf, FastscapeOutputVariable::kd, FastscapeOutputVariable::uplift_rate }
 

Public Member Functions

 ~FastScape () override
 
virtual void initialize () override
 
void update () override
 
virtual void compute_velocity_constraints_on_boundary (const DoFHandler< dim > &mesh_deformation_dof_handler, AffineConstraints< double > &mesh_velocity_constraints, const std::set< types::boundary_id > &boundary_ids) const override
 
double boundary_composition (const types::boundary_id boundary_indicator, const Point< dim > &position, const unsigned int compositional_field) const override
 
bool needs_surface_stabilization () const override
 
void parse_parameters (ParameterHandler &prm) override
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
void save (std::map< std::string, std::string > &status_strings) const override
 
void load (const std::map< std::string, std::string > &status_strings) override
 
- Public Member Functions inherited from aspect::MeshDeformation::Interface< dim >
virtual Tensor< 1, dim > compute_initial_deformation_on_boundary (const types::boundary_id boundary_indicator, const Point< dim > &position) const
 
virtual void compute_initial_deformation_as_constraints (const Mapping< dim > &mapping, const DoFHandler< dim > &mesh_deformation_dof_handler, const types::boundary_id boundary_indicator, AffineConstraints< double > &constraints) const
 
- Public Member Functions inherited from aspect::Plugins::InterfaceBase
virtual ~InterfaceBase ()=default
 
- Public Member Functions inherited from aspect::SimulatorAccess< dim >
 SimulatorAccess ()
 
 SimulatorAccess (const Simulator< dim > &simulator_object)
 
virtual ~SimulatorAccess ()
 
virtual void initialize_simulator (const Simulator< dim > &simulator_object)
 
const Introspection< dim > & introspection () const
 
const Simulator< dim > & get_simulator () const
 
const Parameters< dim > & get_parameters () const
 
SimulatorSignals< dim > & get_signals () const
 
MPI_Comm get_mpi_communicator () const
 
TimerOutputget_computing_timer () const
 
const ConditionalOStreamget_pcout () const
 
double get_time () const
 
double get_timestep () const
 
double get_old_timestep () const
 
unsigned int get_timestep_number () const
 
const TimeStepping::Manager< dim > & get_timestepping_manager () const
 
unsigned int get_nonlinear_iteration () const
 
const parallel::distributed::Triangulation< dim > & get_triangulation () const
 
double get_volume () const
 
const Mapping< dim > & get_mapping () const
 
std::string get_output_directory () const
 
unsigned int get_checkpoint_id () const
 
bool include_adiabatic_heating () const
 
bool include_latent_heat () const
 
bool include_melt_transport () const
 
int get_stokes_velocity_degree () const
 
double get_adiabatic_surface_temperature () const
 
double get_surface_pressure () const
 
bool convert_output_to_years () const
 
unsigned int get_pre_refinement_step () const
 
unsigned int n_compositional_fields () const
 
double get_end_time () const
 
void get_refinement_criteria (Vector< float > &estimated_error_per_cell) const
 
void get_artificial_viscosity (Vector< float > &viscosity_per_cell, const bool skip_interior_cells=false) const
 
void get_artificial_viscosity_composition (Vector< float > &viscosity_per_cell, const unsigned int compositional_variable) const
 
const LinearAlgebra::BlockVectorget_current_linearization_point () const
 
const LinearAlgebra::BlockVectorget_solution () const
 
const LinearAlgebra::BlockVectorget_old_solution () const
 
const LinearAlgebra::BlockVectorget_old_old_solution () const
 
const LinearAlgebra::BlockVectorget_reaction_vector () const
 
const LinearAlgebra::BlockVectorget_mesh_velocity () const
 
const DoFHandler< dim > & get_dof_handler () const
 
const FiniteElement< dim > & get_fe () const
 
const LinearAlgebra::BlockSparseMatrixget_system_matrix () const
 
const LinearAlgebra::BlockSparseMatrixget_system_preconditioner_matrix () const
 
const MaterialModel::Interface< dim > & get_material_model () const
 
const GravityModel::Interface< dim > & get_gravity_model () const
 
const InitialTopographyModel::Interface< dim > & get_initial_topography_model () const
 
const std::shared_ptr< const InitialTopographyModel::Interface< dim > > get_initial_topography_model_pointer () const
 
const GeometryModel::Interface< dim > & get_geometry_model () const
 
const AdiabaticConditions::Interface< dim > & get_adiabatic_conditions () const
 
bool has_boundary_temperature () const
 
const BoundaryTemperature::Manager< dim > & get_boundary_temperature_manager () const
 
const BoundaryConvectiveHeating::Manager< dim > & get_boundary_convective_heating_manager () const
 
const BoundaryHeatFlux::Interface< dim > & get_boundary_heat_flux () const
 
bool has_boundary_composition () const
 
const BoundaryComposition::Manager< dim > & get_boundary_composition_manager () const
 
const BoundaryTraction::Manager< dim > & get_boundary_traction_manager () const
 
std::shared_ptr< const InitialTemperature::Manager< dim > > get_initial_temperature_manager_pointer () const
 
const InitialTemperature::Manager< dim > & get_initial_temperature_manager () const
 
std::shared_ptr< const InitialComposition::Manager< dim > > get_initial_composition_manager_pointer () const
 
const InitialComposition::Manager< dim > & get_initial_composition_manager () const
 
const std::set< types::boundary_id > & get_fixed_temperature_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_heat_flux_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_convective_heating_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_composition_boundary_indicators () const
 
const std::set< types::boundary_id > & get_mesh_deformation_boundary_indicators () const
 
const BoundaryVelocity::Manager< dim > & get_boundary_velocity_manager () const
 
const HeatingModel::Manager< dim > & get_heating_model_manager () const
 
const PrescribedDilation::Manager< dim > & get_prescribed_dilation_manager () const
 
const MeshRefinement::Manager< dim > & get_mesh_refinement_manager () const
 
const MeltHandler< dim > & get_melt_handler () const
 
const VolumeOfFluidHandler< dim > & get_volume_of_fluid_handler () const
 
const NewtonHandler< dim > & get_newton_handler () const
 
const MeshDeformation::MeshDeformationHandler< dim > & get_mesh_deformation_handler () const
 
const LateralAveraging< dim > & get_lateral_averaging () const
 
const AffineConstraints< double > & get_current_constraints () const
 
bool simulator_is_past_initialization () const
 
double get_pressure_scaling () const
 
bool pressure_rhs_needs_compatibility_modification () const
 
bool stokes_A_block_is_symmetric () const
 
bool model_has_prescribed_stokes_solution () const
 
TableHandlerget_statistics_object () const
 
const Postprocess::Manager< dim > & get_postprocess_manager () const
 
unsigned int n_particle_managers () const
 
const Particle::Manager< dim > & get_particle_manager (const unsigned int particle_manager_index) const
 
Particle::Manager< dim > & get_particle_manager (const unsigned int particle_manager_index)
 
bool is_stokes_matrix_free () const
 
const StokesMatrixFreeHandler< dim > & get_stokes_matrix_free () const
 
const StokesSolver::Interface< dim > & get_stokes_solver () const
 
const PrescribedSolution::Manager< dim > & get_prescribed_solution () const
 
RotationProperties< dim > compute_net_angular_momentum (const bool use_constant_density, const LinearAlgebra::BlockVector &solution, const bool limit_to_top_faces=false) const
 
void remove_nullspace (LinearAlgebra::BlockVector &solution, LinearAlgebra::BlockVector &distributed_stokes_solution) const
 
double normalize_pressure (LinearAlgebra::BlockVector &vector) const
 
void denormalize_pressure (const double pressure_adjustment, LinearAlgebra::BlockVector &vector) const
 

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, doublefill_data_table (const std::vector< double > &values, const TableIndices< dim > &size_idx, const unsigned int &fastscape_nx, const unsigned int &fastscape_ny) const
 

Private Attributes

unsigned int fastscape_steps_per_aspect_step
 
double maximum_fastscape_timestep
 
double fastscape_dx
 
double fastscape_dy
 
double fastscape_x_extent
 
double fastscape_y_extent
 
double fastscape_y_extent_2d
 
unsigned int fastscape_nx
 
unsigned int fastscape_ny
 
double vexp
 
unsigned int additional_refinement_levels
 
unsigned int maximum_surface_refinement_level
 
unsigned int surface_refinement_difference
 
bool average_out_of_plane_surface_topography
 
int fastscape_seed
 
std::array< std::pair< double, double >, dim > grid_extent
 
std::array< unsigned int, dim > table_intervals
 
bool use_ghost_nodes
 
double noise_elevation
 
std::vector< doublesediment_rain_rates
 
std::vector< doublesediment_rain_times
 
bool fastscape_advection_uplift
 
double node_tolerance
 
double output_interval
 
double last_output_time
 
Fastscape boundary conditions
unsigned int bottom
 
unsigned int top
 
unsigned int right
 
unsigned int left
 
bool topbottom_ghost_nodes_periodic
 
bool leftright_ghost_nodes_periodic
 
unsigned int fastscape_boundary_conditions
 
double bottom_flux
 
double top_flux
 
double right_flux
 
double left_flux
 
FastScape subaerial erosional parameters
double drainage_area_exponent_m
 
double slope_exponent_n
 
double slope_exponent_p
 
double bedrock_deposition_g
 
double sediment_deposition_g
 
Functions::ParsedFunction< 2 > kf_distribution_function
 
bool use_kf_distribution_function
 
double constant_bedrock_river_incision_rate
 
double sediment_river_incision_rate
 
Functions::ParsedFunction< 2 > kd_distribution_function
 
bool use_kd_distribution_function
 
double constant_bedrock_transport_coefficient
 
double sediment_transport_coefficient
 
Fastscape marine parameters
double sea_level_constant_value
 
Functions::ParsedFunction< 1 > sea_level_function
 
bool use_sea_level_function
 
bool use_fixed_erosional_base
 
double h_erosional_base
 
double sand_surface_porosity
 
double silt_surface_porosity
 
double sand_efold_depth
 
double silt_efold_depth
 
double incoming_silt_fraction
 
double sand_silt_averaging_depth
 
double sand_transport_coefficient
 
double silt_transport_coefficient
 
bool use_marine_component
 
Orographic parameters
int flat_elevation
 
int wind_barrier_elevation
 
unsigned int wind_direction
 
double flat_erosional_factor
 
double wind_barrier_erosional_factor
 
bool stack_controls
 
bool use_orographic_controls
 

Detailed Description

template<int dim>
class aspect::MeshDeformation::FastScape< dim >

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.

Member Enumeration Documentation

§ FastscapeOutputVariable

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.

Constructor & Destructor Documentation

§ ~FastScape()

template<int dim>
aspect::MeshDeformation::FastScape< dim >::~FastScape ( )
override

Destructor for FastScape.

Member Function Documentation

§ initialize()

template<int dim>
virtual void aspect::MeshDeformation::FastScape< dim >::initialize ( )
overridevirtual

Initialize variables for FastScape.

Reimplemented from aspect::Plugins::InterfaceBase.

§ update()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::update ( )
overridevirtual

Update input variables for FastScape.

Reimplemented from aspect::Plugins::InterfaceBase.

§ compute_velocity_constraints_on_boundary()

template<int dim>
virtual void aspect::MeshDeformation::FastScape< dim >::compute_velocity_constraints_on_boundary ( const DoFHandler< dim > &  mesh_deformation_dof_handler,
AffineConstraints< double > &  mesh_velocity_constraints,
const std::set< types::boundary_id > &  boundary_ids 
) const
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 >.

§ boundary_composition()

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::boundary_composition ( const types::boundary_id  boundary_indicator,
const Point< dim > &  position,
const unsigned int  compositional_field 
) const
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.

Parameters
boundary_indicatorThe boundary indicator of the part of the boundary of the domain on which the point is located at which we are requesting the composition.
positionThe position of the point at which we ask for the composition.
compositional_fieldThe index of the compositional field between 0 and parameters.n_compositional_fields.
Returns
Boundary value of the compositional field compositional_field at the position position.

Reimplemented from aspect::MeshDeformation::Interface< dim >.

§ needs_surface_stabilization()

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::needs_surface_stabilization ( ) const
overridevirtual

Returns whether or not the plugin requires surface stabilization

Reimplemented from aspect::MeshDeformation::Interface< dim >.

§ declare_parameters()

template<int dim>
static void aspect::MeshDeformation::FastScape< dim >::declare_parameters ( ParameterHandler prm)
static

Declare parameters for the FastScape plugin.

§ parse_parameters()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::parse_parameters ( ParameterHandler prm)
overridevirtual

Parse parameters for the FastScape plugin.

Reimplemented from aspect::Plugins::InterfaceBase.

§ serialize()

template<int dim>
template<class Archive >
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.

§ save()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::save ( std::map< std::string, std::string > &  status_strings) const
overridevirtual

Save the state of this object.

Reimplemented from aspect::Plugins::InterfaceBase.

§ load()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::load ( const std::map< std::string, std::string > &  status_strings)
overridevirtual

Restore the state of the object.

Reimplemented from aspect::Plugins::InterfaceBase.

§ set_ghost_nodes()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::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
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.

§ is_ghost_node()

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::is_ghost_node ( const unsigned int index,
const bool exclude_boundaries 
) const
private

Function to determine whether the current index is a ghost node

§ fill_fastscape_arrays()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::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
private

Function to fill the Fastscape arrays (height and velocities) with the data received from ASPECT in the correct index order.

§ get_aspect_values()

template<int dim>
std::vector<std::vector<double> > aspect::MeshDeformation::FastScape< dim >::get_aspect_values ( ) const
private

Function to get the ASPECT topography and velocities at the surface, and an index for transferring these to FastScape.

§ initialize_fastscape()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::initialize_fastscape ( std::vector< double > &  elevation,
std::vector< double > &  basement,
std::vector< double > &  silt_fraction,
bool  restart 
) const
private

Function to initialize or restart FastScape

§ execute_fastscape()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::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
private

Execute FastScape

§ apply_orographic_controls()

template<int dim>
void aspect::MeshDeformation::FastScape< dim >::apply_orographic_controls ( const std::vector< double > &  elevation,
std::vector< double > &  bedrock_river_incision_rate_array,
std::vector< double > &  bedrock_transport_coefficient_array 
) const
private

Function to apply orographic (mountain related, e.g., wind or elevation) controls to the FastScape model.

§ fill_data_table()

template<int dim>
Table<dim,double> aspect::MeshDeformation::FastScape< dim >::fill_data_table ( const std::vector< double > &  values,
const TableIndices< dim > &  size_idx,
const unsigned int fastscape_nx,
const unsigned int fastscape_ny 
) const
private

Fill velocity data table to be interpolated back onto the ASPECT mesh.

Member Data Documentation

§ additional_output_variable

template<int dim>
FastscapeOutputVariable aspect::MeshDeformation::FastScape< dim >::additional_output_variable

Definition at line 112 of file fastscape.h.

§ fastscape_steps_per_aspect_step

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::fastscape_steps_per_aspect_step
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.

§ maximum_fastscape_timestep

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::maximum_fastscape_timestep
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.

§ fastscape_dx

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::fastscape_dx
private

FastScape cell size in X.

Definition at line 227 of file fastscape.h.

§ fastscape_dy

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::fastscape_dy
private

FastScape cell size in Y.

Definition at line 232 of file fastscape.h.

§ fastscape_x_extent

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::fastscape_x_extent
private

FastScape X extent (ASPECT X extent + 2*dx for ghost nodes).

Definition at line 237 of file fastscape.h.

§ fastscape_y_extent

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::fastscape_y_extent
private

Fastscape Y extent (ASPECT Y extent + 2*dy for ghost nodes).

Definition at line 242 of file fastscape.h.

§ fastscape_y_extent_2d

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::fastscape_y_extent_2d
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.

§ fastscape_nx

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::fastscape_nx
private

Number of x points in FastScape array.

Definition at line 253 of file fastscape.h.

§ fastscape_ny

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::fastscape_ny
private

Number of y points in FastScape array.

Definition at line 258 of file fastscape.h.

§ vexp

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::vexp
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.

§ additional_refinement_levels

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::additional_refinement_levels
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.

§ maximum_surface_refinement_level

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::maximum_surface_refinement_level
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.

§ surface_refinement_difference

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::surface_refinement_difference
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.

§ average_out_of_plane_surface_topography

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::average_out_of_plane_surface_topography
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.

§ fastscape_seed

template<int dim>
int aspect::MeshDeformation::FastScape< dim >::fastscape_seed
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.

§ grid_extent

template<int dim>
std::array<std::pair<double,double>,dim> aspect::MeshDeformation::FastScape< dim >::grid_extent
private

Variable to hold ASPECT domain extents.

Definition at line 311 of file fastscape.h.

§ table_intervals

template<int dim>
std::array<unsigned int, dim> aspect::MeshDeformation::FastScape< dim >::table_intervals
private

Table for interpolating FastScape surface velocities back to ASPECT.

Definition at line 316 of file fastscape.h.

§ use_ghost_nodes

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::use_ghost_nodes
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.

§ noise_elevation

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::noise_elevation
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.

§ sediment_rain_rates

template<int dim>
std::vector<double> aspect::MeshDeformation::FastScape< dim >::sediment_rain_rates
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.

§ sediment_rain_times

template<int dim>
std::vector<double> aspect::MeshDeformation::FastScape< dim >::sediment_rain_times
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.

§ fastscape_advection_uplift

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::fastscape_advection_uplift
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.

§ node_tolerance

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::node_tolerance
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.

§ output_interval

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::output_interval
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.

§ last_output_time

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::last_output_time
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.

§ bottom

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::bottom
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.

§ top

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::top
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.

§ right

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::right
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.

§ left

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::left
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.

§ topbottom_ghost_nodes_periodic

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::topbottom_ghost_nodes_periodic
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.

§ leftright_ghost_nodes_periodic

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::leftright_ghost_nodes_periodic
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.

§ fastscape_boundary_conditions

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::fastscape_boundary_conditions
private

Integer that holds the full boundary conditions sent to FastScape (e.g., 1111).

Definition at line 439 of file fastscape.h.

§ bottom_flux

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::bottom_flux
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.

§ top_flux

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::top_flux
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.

§ right_flux

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::right_flux
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.

§ left_flux

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::left_flux
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.

§ drainage_area_exponent_m

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::drainage_area_exponent_m
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.

§ slope_exponent_n

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::slope_exponent_n
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.

§ slope_exponent_p

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::slope_exponent_p
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.

§ bedrock_deposition_g

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::bedrock_deposition_g
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.

§ sediment_deposition_g

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sediment_deposition_g
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.

§ kf_distribution_function

template<int dim>
Functions::ParsedFunction<2> aspect::MeshDeformation::FastScape< dim >::kf_distribution_function
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.

§ use_kf_distribution_function

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::use_kf_distribution_function
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.

§ constant_bedrock_river_incision_rate

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::constant_bedrock_river_incision_rate
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.

§ sediment_river_incision_rate

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sediment_river_incision_rate
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.

§ kd_distribution_function

template<int dim>
Functions::ParsedFunction<2> aspect::MeshDeformation::FastScape< dim >::kd_distribution_function
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.

§ use_kd_distribution_function

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::use_kd_distribution_function
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.

§ constant_bedrock_transport_coefficient

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::constant_bedrock_transport_coefficient
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.

§ sediment_transport_coefficient

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sediment_transport_coefficient
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.

§ sea_level_constant_value

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sea_level_constant_value
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.

§ sea_level_function

template<int dim>
Functions::ParsedFunction<1> aspect::MeshDeformation::FastScape< dim >::sea_level_function
private

The user defined 1D function of time-dependent sea level.

Definition at line 607 of file fastscape.h.

§ use_sea_level_function

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::use_sea_level_function
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.

§ use_fixed_erosional_base

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::use_fixed_erosional_base
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.

§ h_erosional_base

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::h_erosional_base
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.

§ sand_surface_porosity

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sand_surface_porosity
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.

§ silt_surface_porosity

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::silt_surface_porosity
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.

§ sand_efold_depth

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sand_efold_depth
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.

§ silt_efold_depth

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::silt_efold_depth
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.

§ incoming_silt_fraction

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::incoming_silt_fraction
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.

§ sand_silt_averaging_depth

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sand_silt_averaging_depth
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.

§ sand_transport_coefficient

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::sand_transport_coefficient
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.

§ silt_transport_coefficient

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::silt_transport_coefficient
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.

§ use_marine_component

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::use_marine_component
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.

§ flat_elevation

template<int dim>
int aspect::MeshDeformation::FastScape< dim >::flat_elevation
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.

§ wind_barrier_elevation

template<int dim>
int aspect::MeshDeformation::FastScape< dim >::wind_barrier_elevation
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.

§ wind_direction

template<int dim>
unsigned int aspect::MeshDeformation::FastScape< dim >::wind_direction
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.

§ flat_erosional_factor

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::flat_erosional_factor
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.

§ wind_barrier_erosional_factor

template<int dim>
double aspect::MeshDeformation::FastScape< dim >::wind_barrier_erosional_factor
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.

§ stack_controls

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::stack_controls
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.

§ use_orographic_controls

template<int dim>
bool aspect::MeshDeformation::FastScape< dim >::use_orographic_controls
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.


The documentation for this class was generated from the following file: