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

Public Member Functions

 GravityPointValues ()
 
virtual std::pair< std::string, std::string > execute (TableHandler &)
 
virtual void parse_parameters (ParameterHandler &prm)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
virtual void save (std::map< std::string, std::string > &status_strings) const
 
virtual void load (const std::map< std::string, std::string > &status_strings)
 
- Public Member Functions inherited from aspect::Postprocess::Interface< dim >
virtual ~Interface ()
 
virtual void initialize ()
 
virtual void update ()
 
virtual std::list< std::string > required_other_postprocessors () const
 
- 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)
 
template<typename PostprocessorType >
PostprocessorType * find_postprocessor () const
 
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
 
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
 
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
 
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
 
void compute_material_model_input_values (const LinearAlgebra::BlockVector &input_solution, const FEValuesBase< dim, dim > &input_finite_element_values, const typename DoFHandler< dim >::active_cell_iterator &cell, const bool compute_strainrate, MaterialModel::MaterialModelInputs< dim > &material_model_inputs) const
 
const GravityModel::Interface< dim > & get_gravity_model () const
 
const InitialTopographyModel::Interface< dim > & get_initial_topography_model () const
 
const GeometryModel::Interface< dim > & get_geometry_model () const
 
const AdiabaticConditions::Interface< dim > & get_adiabatic_conditions () const
 
bool has_boundary_temperature () const
 
DEAL_II_DEPRECATED const BoundaryTemperature::Interface< dim > & get_boundary_temperature () const
 
const BoundaryTemperature::Manager< dim > & get_boundary_temperature_manager () const
 
const BoundaryHeatFlux::Interface< dim > & get_boundary_heat_flux () const
 
bool has_boundary_composition () const
 
DEAL_II_DEPRECATED const BoundaryComposition::Interface< dim > & get_boundary_composition () const
 
const BoundaryComposition::Manager< dim > & get_boundary_composition_manager () const
 
const std::map< types::boundary_id, std::unique_ptr< BoundaryTraction::Interface< dim > > > & get_boundary_traction () const
 
DEAL_II_DEPRECATED const InitialTemperature::Interface< dim > & get_initial_temperature () const
 
const InitialTemperature::Manager< dim > & get_initial_temperature_manager () const
 
DEAL_II_DEPRECATED const InitialComposition::Interface< dim > & get_initial_composition () 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_composition_boundary_indicators () const
 
const std::set< types::boundary_id > & get_free_surface_boundary_indicators () const
 
const BoundaryVelocity::Manager< dim > & get_boundary_velocity_manager () const
 
const HeatingModel::Manager< dim > & get_heating_model_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 WorldBuilder::World & get_world_builder () const
 
const FreeSurfaceHandler< dim > & get_free_surface_handler () const
 
const LateralAveraging< dim > & get_lateral_averaging () const
 
const ConstraintMatrix & get_current_constraints () const
 
bool simulator_is_initialized () const
 
double get_pressure_scaling () const
 
bool pressure_rhs_needs_compatibility_modification () const
 
bool model_has_prescribed_stokes_solution () const
 
TableHandlerget_statistics_object () const
 
template<typename PostprocessorType >
DEAL_II_DEPRECATED PostprocessorType * find_postprocessor () const
 
const Postprocess::Manager< dim > & get_postprocess_manager () const
 

Static Public Member Functions

static void declare_parameters (ParameterHandler &prm)
 
- Static Public Member Functions inherited from aspect::Postprocess::Interface< dim >
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)
 

Private Types

enum  SamplingScheme { map, list }
 

Private Member Functions

void set_last_output_time (const double current_time)
 

Private Attributes

double output_interval
 
double last_output_time
 
unsigned int maximum_timesteps_between_outputs
 
unsigned int last_output_timestep
 
unsigned int output_file_number
 
double end_time
 
double quadrature_degree_increase
 
unsigned int n_points_radius
 
unsigned int n_points_longitude
 
unsigned int n_points_latitude
 
double minimum_radius
 
double maximum_radius
 
double minimum_colongitude
 
double maximum_colongitude
 
double minimum_colatitude
 
double maximum_colatitude
 
double reference_density
 
enum aspect::Postprocess::GravityPointValues::SamplingScheme sampling_scheme
 
std::vector< double > radius_list
 
std::vector< double > longitude_list
 
std::vector< double > latitude_list
 

Detailed Description

template<int dim>
class aspect::Postprocess::GravityPointValues< dim >

A postprocessor that computes gravity, gravity anomalies, gravity potential and gravity gradients for a set of points (e.g. satellites) in or above the model surface for a user-defined range of latitudes, longitudes and radius, or a list of point coordinates. Spherical coordinates in the output file are radius, colattitude and colongitude. Gravity is here based on the density distribution from the material model (and non adiabatic). This means that the density may come directly from an ascii file. This postprocessor also computes theoretical gravity (and gradients), which corresponds to the analytical solution of gravity in the same geometry but filled with a reference density. The reference density is also used to determine the density difference for computing gravity anomalies. Thus one must carefully evaluate the meaning of the gravity anomaly output, because the solution may not reflect the actual gravity anomaly (due to differences in the assumed reference density). One way to guarantee correct gravity anomalies is to subtract the gravity of a certain point from the average gravity on the map. Another way is to directly use density anomalies for this postprocessor.

Definition at line 55 of file gravity_point_values.h.

Member Enumeration Documentation

§ SamplingScheme

Specify the sampling scheme determining if gravity calculation is performed for a map of points or a list of points.

Enumerator
map 
list 

Definition at line 234 of file gravity_point_values.h.

Constructor & Destructor Documentation

§ GravityPointValues()

Constructor.

Member Function Documentation

§ execute()

template<int dim>
virtual std::pair<std::string,std::string> aspect::Postprocess::GravityPointValues< dim >::execute ( TableHandler )
virtual

Specify the creation of output_gravity.txt.

Implements aspect::Postprocess::Interface< dim >.

§ declare_parameters()

template<int dim>
static void aspect::Postprocess::GravityPointValues< dim >::declare_parameters ( ParameterHandler prm)
static

Declare the parameters this class takes through input files.

§ parse_parameters()

template<int dim>
virtual void aspect::Postprocess::GravityPointValues< dim >::parse_parameters ( ParameterHandler prm)
virtual

Read the parameters this class declares from the parameter file.

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

§ serialize()

template<int dim>
template<class Archive >
void aspect::Postprocess::GravityPointValues< 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>
virtual void aspect::Postprocess::GravityPointValues< dim >::save ( std::map< std::string, std::string > &  status_strings) const
virtual

Save the state of this object.

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

§ load()

template<int dim>
virtual void aspect::Postprocess::GravityPointValues< dim >::load ( const std::map< std::string, std::string > &  status_strings)
virtual

Restore the state of the object.

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

§ set_last_output_time()

template<int dim>
void aspect::Postprocess::GravityPointValues< dim >::set_last_output_time ( const double  current_time)
private

Set the time output was supposed to be written. In the simplest case, this is the previous last output time plus the interval, but in general we'd like to ensure that it is the largest supposed output time, which is smaller than the current time, to avoid falling behind with last_output_time and having to catch up once the time step becomes larger. This is done after every output.

Member Data Documentation

§ output_interval

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::output_interval
private

Interval between the generation of gravity output.

Definition at line 106 of file gravity_point_values.h.

§ last_output_time

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::last_output_time
private

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 112 of file gravity_point_values.h.

§ maximum_timesteps_between_outputs

template<int dim>
unsigned int aspect::Postprocess::GravityPointValues< dim >::maximum_timesteps_between_outputs
private

Maximum number of steps between the generation of gravity output.

Definition at line 117 of file gravity_point_values.h.

§ last_output_timestep

template<int dim>
unsigned int aspect::Postprocess::GravityPointValues< dim >::last_output_timestep
private

Timestep at which the last gravity output was produced Used to check for the next necessary output time.

Definition at line 123 of file gravity_point_values.h.

§ output_file_number

template<int dim>
unsigned int aspect::Postprocess::GravityPointValues< dim >::output_file_number
private

Consecutively counted number indicating the how-manyth time we will create output the next time we get to it.

Definition at line 129 of file gravity_point_values.h.

§ end_time

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::end_time
private

end_time is taken from parameter file. It is used to tell the postprocessor to write gravity output at the end time.

Definition at line 135 of file gravity_point_values.h.

§ quadrature_degree_increase

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::quadrature_degree_increase
private

Quadrature degree increase over the velocity element degree may be required when gravity is calculated near the surface or inside the model. An increase in the quadrature element adds accuracy to the gravity solution from noise due to the model grid.

Definition at line 153 of file gravity_point_values.h.

§ n_points_radius

template<int dim>
unsigned int aspect::Postprocess::GravityPointValues< dim >::n_points_radius
private

Parameter for the map sampling scheme: Gravity may be calculated for a sets of points along the radius (e.g. depth profile) between a minimum and maximum radius. Number of points along the radius is specified with n_points_radius.

Definition at line 161 of file gravity_point_values.h.

§ n_points_longitude

template<int dim>
unsigned int aspect::Postprocess::GravityPointValues< dim >::n_points_longitude
private

Parameter for the map sampling scheme: Gravity may be calculated for a sets of points along the longitude (e.g. satellite mapping) between a minimum and maximum longitude. Number of points along the longitude is specified with n_points_longitude.

Definition at line 169 of file gravity_point_values.h.

§ n_points_latitude

template<int dim>
unsigned int aspect::Postprocess::GravityPointValues< dim >::n_points_latitude
private

Parameter for the map sampling scheme: Gravity may be calculated for a sets of points along the latitude (e.g. satellite mapping) between a minimum and maximum latitude. Number of points along the latitude is specified with n_points_latitude.

Definition at line 177 of file gravity_point_values.h.

§ minimum_radius

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::minimum_radius
private

Parameter for the map sampling scheme: Minimum radius for the depth range in case of the map sampling scheme. Presribe a minimum radius for a sampling coverage at a specific height. May be defined in or outside the model.

Definition at line 185 of file gravity_point_values.h.

§ maximum_radius

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::maximum_radius
private

Parameter for the map sampling scheme: Maximum radius for depth-profile in case of the map sampling scheme. May be defined in or outside the model. No need to specify maximum_radius if n_points_radius is 1.

Definition at line 193 of file gravity_point_values.h.

§ minimum_colongitude

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::minimum_colongitude
private

Parameter for the map sampling scheme: Minimum longitude for longitude range in case of the map sampling scheme.

Definition at line 199 of file gravity_point_values.h.

§ maximum_colongitude

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::maximum_colongitude
private

Parameter for the map sampling scheme: Maximum longitude for the longitude range in case of the map sampling scheme. No need to specify maximum_longitude if n_points_longitude is 1.

Definition at line 206 of file gravity_point_values.h.

§ minimum_colatitude

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::minimum_colatitude
private

Parameter for the map sampling scheme: Minimum latitude for the latitude range in case of the map sampling scheme.

Definition at line 212 of file gravity_point_values.h.

§ maximum_colatitude

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::maximum_colatitude
private

Parameter for the map sampling scheme: Maximum latitude for the latitude range in case of the map sampling scheme. No need to specify maximum_latitude if n_points_latitude is 1.

Definition at line 219 of file gravity_point_values.h.

§ reference_density

template<int dim>
double aspect::Postprocess::GravityPointValues< dim >::reference_density
private

A reference density is required for two purposes: 1) benchmark the gravity postprocessor with computing analytically gravity acceleration and gradients in the domain filled with a constant density. 2) calculate the density difference of the density given by the material model and a constant density, in order to compute gravity anomalies.

Definition at line 228 of file gravity_point_values.h.

§ sampling_scheme

§ radius_list

template<int dim>
std::vector<double> aspect::Postprocess::GravityPointValues< dim >::radius_list
private

Parameter for the list sampling scheme: List of radius coordinates for the list sampling scheme. Must be in order with the lists of longitude and latitude.

Definition at line 245 of file gravity_point_values.h.

§ longitude_list

template<int dim>
std::vector<double> aspect::Postprocess::GravityPointValues< dim >::longitude_list
private

Parameter for the list sampling scheme: List of longitude coordinates for the list sampling scheme. Must be in order with the lists of radius and latitude.

Definition at line 252 of file gravity_point_values.h.

§ latitude_list

template<int dim>
std::vector<double> aspect::Postprocess::GravityPointValues< dim >::latitude_list
private

Parameter for the list sampling scheme: List of latitude coordinates for the list sampling scheme. Must be in order with the lists of radius and longitude.

Definition at line 259 of file gravity_point_values.h.


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