![]() |
ASPECT
|
Public Member Functions | |
Manager () | |
~Manager () override | |
void | initialize () |
void | initialize_one_particle (typename ParticleHandler< dim >::particle_iterator &particle) const |
std::vector< double > | initialize_late_particle (const Point< dim > &particle_location, const ParticleHandler< dim > &particle_handler, const Interpolator::Interface< dim > &interpolator, const typename parallel::distributed::Triangulation< dim >::active_cell_iterator &cell=typename parallel::distributed::Triangulation< dim >::active_cell_iterator()) const |
void | update_one_particle (typename ParticleHandler< dim >::particle_iterator &particle, const Vector< double > &solution, const std::vector< Tensor< 1, dim >> &gradients) const |
UpdateTimeFlags | need_update () const |
UpdateFlags | get_needed_update_flags () const |
bool | plugin_name_exists (const std::string &name) const |
bool | check_plugin_order (const std::string &first, const std::string &second) const |
unsigned int | get_plugin_index_by_name (const std::string &name) const |
template<typename ParticlePropertyType > | |
bool | has_matching_property () const |
template<typename ParticlePropertyType > | |
const ParticlePropertyType & | get_matching_property () const |
unsigned int | get_n_property_components () const |
std::size_t | get_particle_size () const |
const ParticlePropertyInformation & | get_data_info () const |
DEAL_II_DEPRECATED unsigned int | get_property_component_by_name (const std::string &name) const |
void | parse_parameters (ParameterHandler &prm) |
![]() | |
SimulatorAccess () | |
SimulatorAccess (const Simulator< dim > &simulator_object) | |
virtual | ~SimulatorAccess ()=default |
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 |
TimerOutput & | get_computing_timer () const |
const ConditionalOStream & | get_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::BlockVector & | get_current_linearization_point () const |
const LinearAlgebra::BlockVector & | get_solution () const |
const LinearAlgebra::BlockVector & | get_old_solution () const |
const LinearAlgebra::BlockVector & | get_old_old_solution () const |
const LinearAlgebra::BlockVector & | get_reaction_vector () const |
const LinearAlgebra::BlockVector & | get_mesh_velocity () const |
const DoFHandler< dim > & | get_dof_handler () const |
const FiniteElement< dim > & | get_fe () const |
const LinearAlgebra::BlockSparseMatrix & | get_system_matrix () const |
const LinearAlgebra::BlockSparseMatrix & | get_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 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 BoundaryHeatFlux::Interface< dim > & | get_boundary_heat_flux () const |
bool | has_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 |
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_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 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 | model_has_prescribed_stokes_solution () const |
TableHandler & | get_statistics_object () const |
const Postprocess::Manager< dim > & | get_postprocess_manager () const |
const Particle::World< dim > & | get_particle_world () const |
Particle::World< dim > & | get_particle_world () |
bool | is_stokes_matrix_free () |
const StokesMatrixFreeHandler< dim > & | get_stokes_matrix_free () const |
RotationProperties< dim > | compute_net_angular_momentum (const bool use_constant_density, const LinearAlgebra::BlockVector &solution, const bool limit_to_top_faces=false) const |
Static Public Member Functions | |
static void | register_particle_property (const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), std::unique_ptr< Property::Interface< dim >>(*factory_function)()) |
static void | declare_parameters (ParameterHandler &prm) |
static void | write_plugin_graph (std::ostream &output_stream) |
![]() | |
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 Attributes | |
std::vector< std::string > | plugin_names |
std::list< std::unique_ptr< Interface< dim > > > | property_list |
ParticlePropertyInformation | property_information |
Manager class of properties - This class sets the data of the collection of particles and updates it over time if requested by the user selected properties.
aspect::Particle::Property::Manager< dim >::Manager | ( | ) |
Empty constructor for Manager
|
override |
Destructor for Manager
void aspect::Particle::Property::Manager< dim >::initialize | ( | ) |
Initialization function. This function is called once at the beginning of the program after parse_parameters is run.
void aspect::Particle::Property::Manager< dim >::initialize_one_particle | ( | typename ParticleHandler< dim >::particle_iterator & | particle | ) | const |
Initialization function for particle properties. This function is called once for each of the particles of a particle collection after it was created.
std::vector<double> aspect::Particle::Property::Manager< dim >::initialize_late_particle | ( | const Point< dim > & | particle_location, |
const ParticleHandler< dim > & | particle_handler, | ||
const Interpolator::Interface< dim > & | interpolator, | ||
const typename parallel::distributed::Triangulation< dim >::active_cell_iterator & | cell = typename parallel::distributed::Triangulation< dim >::active_cell_iterator() |
||
) | const |
Initialization function for particle properties. This function is called once for each of the particles of a particle collection that were created later than the initial particle generation.
void aspect::Particle::Property::Manager< dim >::update_one_particle | ( | typename ParticleHandler< dim >::particle_iterator & | particle, |
const Vector< double > & | solution, | ||
const std::vector< Tensor< 1, dim >> & | gradients | ||
) | const |
Update function for particle properties. This function is called once every time step for every particle.
UpdateTimeFlags aspect::Particle::Property::Manager< dim >::need_update | ( | ) | const |
Returns an enum, which denotes at what time this class needs to update particle properties. The result of this class is a combination of the need_update() functions of all individual properties that are selected. More precise, it will choose to update the particle properties as often as the plugin that needs the most frequent update option requires. This saves considerable computation time, e.g. in cases when no plugin needs to update particle properties over time, because the solution does not need to be evaluated in this case.
UpdateFlags aspect::Particle::Property::Manager< dim >::get_needed_update_flags | ( | ) | const |
Return which data has to be provided to update all properties. Note that particle properties can only ask for update_default (no data), update_values (solution values), and update_gradients (solution gradients). All other update flags will have no effect.
bool aspect::Particle::Property::Manager< dim >::plugin_name_exists | ( | const std::string & | name | ) | const |
Checks if the particle plugin specified by name
exists in this model.
bool aspect::Particle::Property::Manager< dim >::check_plugin_order | ( | const std::string & | first, |
const std::string & | second | ||
) | const |
Checks if the particle property plugin specified by first
is executed before another particle property plugin specified by second
.
Throws an assert when one of the plugin names does not exist. You can use the function plugin_name_exists() to check in advance whether a plugin exists
unsigned int aspect::Particle::Property::Manager< dim >::get_plugin_index_by_name | ( | const std::string & | name | ) | const |
Get the plugin index of the particle plugin specified by name
.
|
inline |
Go through the list of all particle properties that have been selected in the input file (and are consequently currently active) and return true if one of them has the desired type specified by the template argument.
Definition at line 800 of file interface.h.
|
inline |
Go through the list of all particle properties that have been selected in the input file (and are consequently currently active) and see if one of them has the type specified by the template argument or can be casted to that type. If so, return a reference to it. If no property is active that matches the given type, throw an exception.
Definition at line 814 of file interface.h.
unsigned int aspect::Particle::Property::Manager< dim >::get_n_property_components | ( | ) | const |
Get the number of components required to represent this particle's properties.
std::size_t aspect::Particle::Property::Manager< dim >::get_particle_size | ( | ) | const |
Get the size in number of bytes required to represent this particle's properties for communication. This is essentially the space needed for the property components plus the space for the particle position and the space needed for its ID.
const ParticlePropertyInformation& aspect::Particle::Property::Manager< dim >::get_data_info | ( | ) | const |
Get the names and number of components of particle properties.
DEAL_II_DEPRECATED unsigned int aspect::Particle::Property::Manager< dim >::get_property_component_by_name | ( | const std::string & | name | ) | const |
Get the position of the property specified by name in the property vector of the particles.
|
static |
A function that is used to register particle property objects in such a way that the Manager can deal with all of them without having to know them by name. This allows the files in which individual properties are implemented to register these properties, rather than also having to modify the Manager class by adding the new properties class.
name | The name under which this particle property is to be called in parameter files. |
description | A text description of what this particle property does and that will be listed in the documentation of the parameter file. |
declare_parameters_function | A pointer to a function that declares the parameters for this property. |
factory_function | A pointer to a function that creates such a property object and returns a pointer to it. |
|
static |
Declare the parameters this class takes through input files.
void aspect::Particle::Property::Manager< dim >::parse_parameters | ( | ParameterHandler & | prm | ) |
Read the parameters this class declares from the parameter file.
|
static |
For the current plugin subsystem, write a connection graph of all of the plugins we know about, in the format that the programs dot and neato understand. This allows for a visualization of how all of the plugins that ASPECT knows about are interconnected, and connect to other parts of the ASPECT code.
output_stream | The stream to write the output to. |
|
private |
Stores the names of the plugins which are present in the order they are executed.
Definition at line 778 of file interface.h.
|
private |
A list of property objects that have been requested in the parameter file.
Definition at line 784 of file interface.h.
|
private |
A class that stores all information about the particle properties, their association with property plugins and their storage pattern.
Definition at line 790 of file interface.h.