ASPECT
Public Member Functions | Private Attributes | List of all members
aspect::SimulatorAccess< dim > Class Template Reference

Inherited by aspect::AdiabaticConditions::Interface< dim >, aspect::Assemblers::AdvectionSystem< dim >, aspect::Assemblers::AdvectionSystemBoundaryFace< dim >, aspect::Assemblers::AdvectionSystemBoundaryHeatFlux< dim >, aspect::Assemblers::AdvectionSystemInteriorFace< dim >, aspect::Assemblers::ApplyStabilization< dim >, aspect::Assemblers::DarcySystem< dim >, aspect::Assemblers::DiffusionSystem< dim >, aspect::Assemblers::MeltInterface< dim >, aspect::Assemblers::NewtonInterface< dim >, aspect::Assemblers::NewtonStokesCompressibleStrainRateViscosityTerm< dim >, aspect::Assemblers::NewtonStokesImplicitReferenceDensityCompressibilityTerm< dim >, aspect::Assemblers::NewtonStokesIsentropicCompressionTerm< dim >, aspect::Assemblers::NewtonStokesProjectedDensityFieldTerm< dim >, aspect::Assemblers::NewtonStokesReferenceDensityCompressibilityTerm< dim >, aspect::Assemblers::StokesBoundaryTraction< dim >, aspect::Assemblers::StokesCompressiblePreconditioner< dim >, aspect::Assemblers::StokesCompressibleStrainRateViscosityTerm< dim >, aspect::Assemblers::StokesHydrostaticCompressionTerm< dim >, aspect::Assemblers::StokesImplicitReferenceDensityCompressibilityTerm< dim >, aspect::Assemblers::StokesIncompressibleTerms< dim >, aspect::Assemblers::StokesIsentropicCompressionTerm< dim >, aspect::Assemblers::StokesPreconditioner< dim >, aspect::Assemblers::StokesPressureRHSCompatibilityModification< dim >, aspect::Assemblers::StokesProjectedDensityFieldTerm< dim >, aspect::Assemblers::StokesReferenceDensityCompressibilityTerm< dim >, aspect::Assemblers::VolumeOfFluidAssembler< dim >, aspect::BoundaryComposition::Box< dim >, aspect::BoundaryComposition::Function< dim >, aspect::BoundaryComposition::InitialComposition< dim >, aspect::BoundaryComposition::Manager< dim >, aspect::BoundaryComposition::SphericalConstant< dim >, aspect::BoundaryComposition::TwoMergedBoxes< dim >, aspect::BoundaryFluidPressure::Density< dim >, aspect::BoundaryHeatFlux::Function< dim >, aspect::BoundaryTemperature::Box< dim >, aspect::BoundaryTemperature::Constant< dim >, aspect::BoundaryTemperature::DynamicCore< dim >, aspect::BoundaryTemperature::Function< dim >, aspect::BoundaryTemperature::InitialTemperature< dim >, aspect::BoundaryTemperature::Manager< dim >, aspect::BoundaryTemperature::SphericalConstant< dim >, aspect::BoundaryTemperature::TwoMergedBoxes< dim >, aspect::BoundaryTraction::Function< dim >, aspect::BoundaryTraction::InitialLithostaticPressure< dim >, aspect::BoundaryTraction::Manager< dim >, aspect::BoundaryVelocity::Function< dim >, aspect::BoundaryVelocity::GPlates< dim >, aspect::BoundaryVelocity::Manager< dim >, aspect::GeometryModel::Box< dim >, aspect::GeometryModel::Chunk< dim >, aspect::GeometryModel::EllipsoidalChunk< dim >, aspect::GeometryModel::Sphere< dim >, aspect::GeometryModel::SphericalShell< dim >, aspect::GeometryModel::TwoMergedBoxes< dim >, aspect::GeometryModel::TwoMergedChunks< dim >, aspect::GravityModel::AsciiData< dim >, aspect::GravityModel::Function< dim >, aspect::GravityModel::RadialConstant< dim >, aspect::GravityModel::RadialEarthLike< dim >, aspect::GravityModel::RadialLinear< dim >, aspect::GravityModel::Vertical< dim >, aspect::HeatingModel::AdiabaticHeating< dim >, aspect::HeatingModel::AdiabaticHeatingMelt< dim >, aspect::HeatingModel::CompositionalHeating< dim >, aspect::HeatingModel::Function< dim >, aspect::HeatingModel::LatentHeatMelt< dim >, aspect::HeatingModel::Manager< dim >, aspect::HeatingModel::RadioactiveDecay< dim >, aspect::HeatingModel::ShearHeating< dim >, aspect::HeatingModel::ShearHeatingMelt< dim >, aspect::InitialComposition::AdiabaticDensity< dim >, aspect::InitialComposition::AsciiData< dim >, aspect::InitialComposition::EntropyTableLookUp< dim >, aspect::InitialComposition::Function< dim >, aspect::InitialComposition::Manager< dim >, aspect::InitialComposition::Porosity< dim >, aspect::InitialComposition::SlabModel< dim >, aspect::InitialTemperature::AsciiProfile< dim >, aspect::InitialTemperature::ContinentalGeotherm< dim >, aspect::InitialTemperature::Function< dim >, aspect::InitialTemperature::HarmonicPerturbation< dim >, aspect::InitialTemperature::InclusionShapeBox< dim >, aspect::InitialTemperature::LABDepth::LABDepthLookup< dim >, aspect::InitialTemperature::LithosphereMask< dim >, aspect::InitialTemperature::Manager< dim >, aspect::InitialTemperature::MandelBox< dim >, aspect::InitialTemperature::PerturbedBox< dim >, aspect::InitialTemperature::PolarBox< dim >, aspect::InitialTemperature::PrescribedTemperature< dim >, aspect::InitialTemperature::RandomGaussianPerturbation< dim >, aspect::InitialTemperature::S40RTSPerturbation< dim >, aspect::InitialTemperature::SAVANIPerturbation< dim >, aspect::InitialTemperature::SphericalGaussianPerturbation< dim >, aspect::InitialTemperature::SphericalHexagonalPerturbation< dim >, aspect::InitialTopographyModel::Function< dim >, aspect::LateralAveraging< dim >, aspect::MaterialModel::AsciiReferenceProfile< dim >, aspect::MaterialModel::Averaging< dim >, aspect::MaterialModel::Compositing< dim >, aspect::MaterialModel::CompositionReaction< dim >, aspect::MaterialModel::DepthDependent< dim >, aspect::MaterialModel::DiffusionDislocation< dim >, aspect::MaterialModel::DruckerPrager< dim >, aspect::MaterialModel::EntropyModel< dim >, aspect::MaterialModel::EquationOfState::MulticomponentCompressible< dim >, aspect::MaterialModel::EquationOfState::MulticomponentIncompressible< dim >, aspect::MaterialModel::EquationOfState::ThermodynamicTableLookup< dim >, aspect::MaterialModel::GrainSize< dim >, aspect::MaterialModel::LatentHeat< dim >, aspect::MaterialModel::LatentHeatMelt< dim >, aspect::MaterialModel::MaterialUtilities::PhaseFunction< dim >, aspect::MaterialModel::MeltBoukare< dim >, aspect::MaterialModel::MeltGlobal< dim >, aspect::MaterialModel::MeltSimple< dim >, aspect::MaterialModel::ModifiedTait< dim >, aspect::MaterialModel::Multicomponent< dim >, aspect::MaterialModel::MulticomponentCompressible< dim >, aspect::MaterialModel::Nondimensional< dim >, aspect::MaterialModel::PrescribedViscosity< dim >, aspect::MaterialModel::ReactiveFluidTransport< dim >, aspect::MaterialModel::ReplaceLithosphereViscosity< dim >, aspect::MaterialModel::Rheology::AsciiDepthProfile< dim >, aspect::MaterialModel::Rheology::CompositeViscoPlastic< dim >, aspect::MaterialModel::Rheology::ConstantViscosityPrefactors< dim >, aspect::MaterialModel::Rheology::DiffusionCreep< dim >, aspect::MaterialModel::Rheology::DislocationCreep< dim >, aspect::MaterialModel::Rheology::DruckerPrager< dim >, aspect::MaterialModel::Rheology::Elasticity< dim >, aspect::MaterialModel::Rheology::FrankKamenetskii< dim >, aspect::MaterialModel::Rheology::FrictionModels< dim >, aspect::MaterialModel::Rheology::PeierlsCreep< dim >, aspect::MaterialModel::Rheology::StrainDependent< dim >, aspect::MaterialModel::Rheology::ViscoPlastic< dim >, aspect::MaterialModel::Simple< dim >, aspect::MaterialModel::SimpleCompressible< dim >, aspect::MaterialModel::Steinberger< dim >, aspect::MaterialModel::Viscoelastic< dim >, aspect::MaterialModel::ViscoPlastic< dim >, aspect::MeltHandler< dim >, aspect::MeshDeformation::BoundaryFunction< dim >, aspect::MeshDeformation::Diffusion< dim >, aspect::MeshDeformation::FreeSurface< dim >, aspect::MeshDeformation::MeshDeformationHandler< dim >, aspect::MeshRefinement::ArtificialViscosity< dim >, aspect::MeshRefinement::Boundary< dim >, aspect::MeshRefinement::CompactionLength< dim >, aspect::MeshRefinement::Composition< dim >, aspect::MeshRefinement::CompositionApproximateGradient< dim >, aspect::MeshRefinement::CompositionGradient< dim >, aspect::MeshRefinement::CompositionThreshold< dim >, aspect::MeshRefinement::Density< dim >, aspect::MeshRefinement::Isosurfaces< dim >, aspect::MeshRefinement::Manager< dim >, aspect::MeshRefinement::MaximumRefinementFunction< dim >, aspect::MeshRefinement::MinimumRefinementFunction< dim >, aspect::MeshRefinement::NonadiabaticTemperature< dim >, aspect::MeshRefinement::NonadiabaticTemperatureThreshold< dim >, aspect::MeshRefinement::ParticleDensity< dim >, aspect::MeshRefinement::Slope< dim >, aspect::MeshRefinement::StrainRate< dim >, aspect::MeshRefinement::Temperature< dim >, aspect::MeshRefinement::ThermalEnergyDensity< dim >, aspect::MeshRefinement::Topography< dim >, aspect::MeshRefinement::Velocity< dim >, aspect::MeshRefinement::Viscosity< dim >, aspect::MeshRefinement::VolumeOfFluidInterface< dim >, aspect::NewtonHandler< dim >, aspect::Particle::Generator::Interface< dim >, aspect::Particle::Integrator::Euler< dim >, aspect::Particle::Integrator::RK2< dim >, aspect::Particle::Integrator::RK4< dim >, aspect::Particle::Interpolator::BilinearLeastSquares< dim >, aspect::Particle::Interpolator::CellAverage< dim >, aspect::Particle::Interpolator::HarmonicAverage< dim >, aspect::Particle::Interpolator::NearestNeighbor< dim >, aspect::Particle::Interpolator::QuadraticLeastSquares< dim >, aspect::Particle::Property::Composition< dim >, aspect::Particle::Property::CpoBinghamAverage< dim >, aspect::Particle::Property::CpoElasticTensor< dim >, aspect::Particle::Property::CrystalPreferredOrientation< dim >, aspect::Particle::Property::ElasticStress< dim >, aspect::Particle::Property::GrainSize< dim >, aspect::Particle::Property::InitialComposition< dim >, aspect::Particle::Property::IntegratedStrain< dim >, aspect::Particle::Property::IntegratedStrainInvariant< dim >, aspect::Particle::Property::Manager< dim >, aspect::Particle::Property::MeltParticle< dim >, aspect::Particle::Property::PTPath< dim >, aspect::Particle::Property::StrainRate< dim >, aspect::Particle::Property::Velocity< dim >, aspect::Particle::Property::ViscoPlasticStrainInvariant< dim >, aspect::Particle::World< dim >, aspect::Postprocess::BasicStatistics< dim >, aspect::Postprocess::BoundaryDensities< dim >, aspect::Postprocess::BoundaryPressures< dim >, aspect::Postprocess::BoundaryStrainRateResidualStatistics< dim >, aspect::Postprocess::BoundaryVelocityResidualStatistics< dim >, aspect::Postprocess::Command< dim >, aspect::Postprocess::CompositionStatistics< dim >, aspect::Postprocess::CompositionVelocityStatistics< dim >, aspect::Postprocess::CoreStatistics< dim >, aspect::Postprocess::CrystalPreferredOrientation< dim >, aspect::Postprocess::DepthAverage< dim >, aspect::Postprocess::DomainVolume< dim >, aspect::Postprocess::DynamicTopography< dim >, aspect::Postprocess::EntropyViscosityStatistics< dim >, aspect::Postprocess::Geoid< dim >, aspect::Postprocess::GlobalStatistics< dim >, aspect::Postprocess::GravityPointValues< dim >, aspect::Postprocess::HeatFluxDensities< dim >, aspect::Postprocess::HeatFluxMap< dim >, aspect::Postprocess::HeatFluxStatistics< dim >, aspect::Postprocess::HeatingStatistics< dim >, aspect::Postprocess::LoadBalanceStatistics< dim >, aspect::Postprocess::Manager< dim >, aspect::Postprocess::MassFluxStatistics< dim >, aspect::Postprocess::MaterialStatistics< dim >, aspect::Postprocess::MatrixStatistics< dim >, aspect::Postprocess::MaxDepthField< dim >, aspect::Postprocess::MeltStatistics< dim >, aspect::Postprocess::MemoryStatistics< dim >, aspect::Postprocess::MobilityStatistics< dim >, aspect::Postprocess::ParticleCountStatistics< dim >, aspect::Postprocess::Particles< dim >, aspect::Postprocess::PointValues< dim >, aspect::Postprocess::PressureStatistics< dim >, aspect::Postprocess::RotationStatistics< dim >, aspect::Postprocess::SeaLevel< dim >, aspect::Postprocess::SphericalVelocityStatistics< dim >, aspect::Postprocess::StokesResidual< dim >, aspect::Postprocess::TemperatureStatistics< dim >, aspect::Postprocess::Topography< dim >, aspect::Postprocess::VelocityBoundaryStatistics< dim >, aspect::Postprocess::VelocityStatistics< dim >, aspect::Postprocess::ViscousDissipationStatistics< dim >, aspect::Postprocess::Visualization< dim >, aspect::Postprocess::VisualizationPostprocessors::Adiabat< dim >, aspect::Postprocess::VisualizationPostprocessors::ArtificialViscosity< dim >, aspect::Postprocess::VisualizationPostprocessors::ArtificialViscosityComposition< dim >, aspect::Postprocess::VisualizationPostprocessors::BoundaryIndicator< dim >, aspect::Postprocess::VisualizationPostprocessors::BoundaryStrainRateResidual< dim >, aspect::Postprocess::VisualizationPostprocessors::BoundaryVelocityResidual< dim >, aspect::Postprocess::VisualizationPostprocessors::CompositionalVector< dim >, aspect::Postprocess::VisualizationPostprocessors::Depth< dim >, aspect::Postprocess::VisualizationPostprocessors::DynamicTopography< dim >, aspect::Postprocess::VisualizationPostprocessors::ErrorIndicator< dim >, aspect::Postprocess::VisualizationPostprocessors::Geoid< dim >, aspect::Postprocess::VisualizationPostprocessors::GrainLagAngle< dim >, aspect::Postprocess::VisualizationPostprocessors::Gravity< dim >, aspect::Postprocess::VisualizationPostprocessors::HeatFluxMap< dim >, aspect::Postprocess::VisualizationPostprocessors::Heating< dim >, aspect::Postprocess::VisualizationPostprocessors::ISARotationTimescale< dim >, aspect::Postprocess::VisualizationPostprocessors::MaterialProperties< dim >, aspect::Postprocess::VisualizationPostprocessors::MaximumHorizontalCompressiveStress< dim >, aspect::Postprocess::VisualizationPostprocessors::MeltFraction< dim >, aspect::Postprocess::VisualizationPostprocessors::MeltMaterialProperties< dim >, aspect::Postprocess::VisualizationPostprocessors::NamedAdditionalOutputs< dim >, aspect::Postprocess::VisualizationPostprocessors::NonadiabaticPressure< dim >, aspect::Postprocess::VisualizationPostprocessors::NonadiabaticTemperature< dim >, aspect::Postprocess::VisualizationPostprocessors::ParticleCount< dim >, aspect::Postprocess::VisualizationPostprocessors::Partition< dim >, aspect::Postprocess::VisualizationPostprocessors::PrincipalStress< dim >, aspect::Postprocess::VisualizationPostprocessors::SeismicVpAnomaly< dim >, aspect::Postprocess::VisualizationPostprocessors::SeismicVsAnomaly< dim >, aspect::Postprocess::VisualizationPostprocessors::ShearStress< dim >, aspect::Postprocess::VisualizationPostprocessors::SPD_Factor< dim >, aspect::Postprocess::VisualizationPostprocessors::SphericalVelocityComponents< dim >, aspect::Postprocess::VisualizationPostprocessors::StrainRate< dim >, aspect::Postprocess::VisualizationPostprocessors::StrainRateTensor< dim >, aspect::Postprocess::VisualizationPostprocessors::Stress< dim >, aspect::Postprocess::VisualizationPostprocessors::StressSecondInvariant< dim >, aspect::Postprocess::VisualizationPostprocessors::SurfaceDynamicTopography< dim >, aspect::Postprocess::VisualizationPostprocessors::SurfaceElevation< dim >, aspect::Postprocess::VisualizationPostprocessors::SurfaceStrainRateTensor< dim >, aspect::Postprocess::VisualizationPostprocessors::SurfaceStress< dim >, aspect::Postprocess::VisualizationPostprocessors::TemperatureAnomaly< dim >, aspect::Postprocess::VisualizationPostprocessors::VerticalHeatFlux< dim >, aspect::Postprocess::VisualizationPostprocessors::VolumeOfFluidValues< dim >, aspect::Postprocess::VisualizationPostprocessors::VolumetricStrainRate< dim >, aspect::Postprocess::VolumeOfFluidStatistics< dim >, aspect::PrescribedStokesSolution::Circle< dim >, aspect::PrescribedStokesSolution::Function< dim >, aspect::TerminationCriteria::EndStep< dim >, aspect::TerminationCriteria::EndTime< dim >, aspect::TerminationCriteria::EndWalltime< dim >, aspect::TerminationCriteria::Manager< dim >, aspect::TerminationCriteria::SteadyHeatFlux< dim >, aspect::TerminationCriteria::SteadyRMSVelocity< dim >, aspect::TerminationCriteria::SteadyTemperature< dim >, aspect::TerminationCriteria::UserRequest< dim >, aspect::TimeStepping::ConductionTimeStep< dim >, aspect::TimeStepping::ConvectionTimeStep< dim >, aspect::TimeStepping::Function< dim >, aspect::TimeStepping::Manager< dim >, aspect::TimeStepping::RepeatOnCutback< dim >, aspect::Utilities::AsciiDataBoundary< dim >, aspect::Utilities::AsciiDataInitial< dim >, aspect::Utilities::AsciiDataLayered< dim >, and aspect::VolumeOfFluidHandler< dim >.

Public Member Functions

 SimulatorAccess ()
 
 SimulatorAccess (const Simulator< dim > &simulator_object)
 
virtual ~SimulatorAccess ()=default
 
virtual void initialize_simulator (const Simulator< dim > &simulator_object)
 
Accessing variables that identify overall properties of the simulator
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
 
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
 
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
 
Accessing variables that identify the solution of the problem
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
 

Private Attributes

const Simulator< dim > * simulator
 

Accessing variables that identify aspects of the simulation

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 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_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 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)
 

Detailed Description

template<int dim>
class aspect::SimulatorAccess< dim >

SimulatorAccess is a base class for different plugins like postprocessors. It provides access to the various variables of the main class that plugins may want to use in their evaluations, such as solution vectors, the current time, time step sizes, material models, or the triangulations and DoFHandlers that correspond to solutions.

This class is the interface between plugins and the main simulator class. Using this insulation layer, the plugins need not know anything about the internal details of the simulation class.

Every Postprocessor is required to derive from SimulatorAccess. It is optional for other plugins like MaterialModel, GravityModel, etc..

Since the functions providing access to details of the simulator class are meant to be used only by derived classes of this class (rather than becoming part of the public interface of these classes), the functions of this class are made protected.

Definition at line 45 of file plugins.h.

Constructor & Destructor Documentation

§ SimulatorAccess() [1/2]

template<int dim>
aspect::SimulatorAccess< dim >::SimulatorAccess ( )

Default constructor. Initialize the SimulatorAccess object without a reference to a particular Simulator object. You will later have to call initialize() to provide this reference to the Simulator object.

§ SimulatorAccess() [2/2]

template<int dim>
aspect::SimulatorAccess< dim >::SimulatorAccess ( const Simulator< dim > &  simulator_object)

Create a SimulatorAccess object that is already initialized for a particular Simulator.

§ ~SimulatorAccess()

template<int dim>
virtual aspect::SimulatorAccess< dim >::~SimulatorAccess ( )
virtualdefault

Destructor. Does nothing but is virtual so that derived classes destructors are also virtual.

Member Function Documentation

§ initialize_simulator()

template<int dim>
virtual void aspect::SimulatorAccess< dim >::initialize_simulator ( const Simulator< dim > &  simulator_object)
virtual

Initialize this class for a given simulator. This function is marked as virtual so that derived classes can do something upon initialization as well, for example look up and cache data; derived classes should call this function from the base class as well, however.

Parameters
simulator_objectA reference to the main simulator object.

Reimplemented in aspect::MeltHandler< dim >, and aspect::TimeStepping::Manager< dim >.

§ introspection()

template<int dim>
const Introspection<dim>& aspect::SimulatorAccess< dim >::introspection ( ) const

Return a reference to an introspection object that describes overall properties of the simulator. In particular, it provides symbolic names for extractors and component masks for each variable, etc, and thereby reduces the need for implicit knowledge throughout the code base.

§ get_simulator()

template<int dim>
const Simulator<dim>& aspect::SimulatorAccess< dim >::get_simulator ( ) const

Return a reference to the Simulator itself. Note that you can not access any members or functions of the Simulator. This function exists so that any class with SimulatorAccess can create other objects with SimulatorAccess (because initializing them requires a reference to the Simulator).

§ get_parameters()

template<int dim>
const Parameters<dim>& aspect::SimulatorAccess< dim >::get_parameters ( ) const

Return a reference to the parameters object that describes all run-time parameters used in the current simulation.

§ get_signals()

template<int dim>
SimulatorSignals<dim>& aspect::SimulatorAccess< dim >::get_signals ( ) const

Get Access to the structure containing the signals of the simulator.

§ get_mpi_communicator()

template<int dim>
MPI_Comm aspect::SimulatorAccess< dim >::get_mpi_communicator ( ) const

Return the MPI communicator for this simulation.

§ get_computing_timer()

template<int dim>
TimerOutput& aspect::SimulatorAccess< dim >::get_computing_timer ( ) const

Return the timer object for this simulation. Since the timer is mutable in the Simulator class, this allows plugins to define their own sections in the timer to measure the time spent in sections of their code.

§ get_pcout()

template<int dim>
const ConditionalOStream& aspect::SimulatorAccess< dim >::get_pcout ( ) const

Return a reference to the stream object that only outputs something on one processor in a parallel program and simply ignores output put into it on all other processors.

§ get_time()

template<int dim>
double aspect::SimulatorAccess< dim >::get_time ( ) const

Return the current simulation time in seconds.

§ get_timestep()

template<int dim>
double aspect::SimulatorAccess< dim >::get_timestep ( ) const

Return the size of the current time step.

§ get_old_timestep()

template<int dim>
double aspect::SimulatorAccess< dim >::get_old_timestep ( ) const

Return the size of the last time step.

§ get_timestep_number()

template<int dim>
unsigned int aspect::SimulatorAccess< dim >::get_timestep_number ( ) const

Return the current number of a time step.

§ get_timestepping_manager()

template<int dim>
const TimeStepping::Manager<dim>& aspect::SimulatorAccess< dim >::get_timestepping_manager ( ) const

Return a reference to the manager of the time stepping strategies. This can then be used, for example, to check whether a checkpoint needs to be made upon termination.

§ get_nonlinear_iteration()

template<int dim>
unsigned int aspect::SimulatorAccess< dim >::get_nonlinear_iteration ( ) const

Return the current nonlinear iteration number of a time step.

§ get_triangulation()

template<int dim>
const parallel::distributed::Triangulation<dim>& aspect::SimulatorAccess< dim >::get_triangulation ( ) const

Return a reference to the triangulation in use by the simulator object.

§ get_volume()

template<int dim>
double aspect::SimulatorAccess< dim >::get_volume ( ) const

Return the global volume of the computational domain.

§ get_mapping()

template<int dim>
const Mapping<dim>& aspect::SimulatorAccess< dim >::get_mapping ( ) const

Return a reference to the mapping used to describe the boundary of the domain.

§ get_output_directory()

template<int dim>
std::string aspect::SimulatorAccess< dim >::get_output_directory ( ) const

Return the directory specified in the input parameter file to be the place where output files are to be placed. The string is terminated by a directory separator (i.e., '/').

§ include_adiabatic_heating()

template<int dim>
bool aspect::SimulatorAccess< dim >::include_adiabatic_heating ( ) const

Return whether we use the adiabatic heating term.

§ include_latent_heat()

template<int dim>
bool aspect::SimulatorAccess< dim >::include_latent_heat ( ) const

Return whether we use the latent heat term.

§ include_melt_transport()

template<int dim>
bool aspect::SimulatorAccess< dim >::include_melt_transport ( ) const

Return whether we solve the equations for melt transport.

§ get_stokes_velocity_degree()

template<int dim>
int aspect::SimulatorAccess< dim >::get_stokes_velocity_degree ( ) const

Return the stokes velocity degree.

§ get_adiabatic_surface_temperature()

template<int dim>
double aspect::SimulatorAccess< dim >::get_adiabatic_surface_temperature ( ) const

Return the adiabatic surface temperature.

§ get_surface_pressure()

template<int dim>
double aspect::SimulatorAccess< dim >::get_surface_pressure ( ) const

Return the adiabatic surface pressure.

§ convert_output_to_years()

template<int dim>
bool aspect::SimulatorAccess< dim >::convert_output_to_years ( ) const

Return whether things like velocities should be converted from the seconds in the MKS system to years. The value of this flag is set by the corresponding entry in the input parameter file.

§ get_pre_refinement_step()

template<int dim>
unsigned int aspect::SimulatorAccess< dim >::get_pre_refinement_step ( ) const

Return the number of the current pre refinement step. This can be useful for plugins that want to function differently in the initial adaptive refinements and later on. This will be not initialized before Simulator<dim>::run() is called. It iterates upward from 0 to parameters.initial_adaptive_refinement during the initial adaptive refinement steps, and equals std::numeric_limits<unsigned int>::max() afterwards.

§ n_compositional_fields()

template<int dim>
unsigned int aspect::SimulatorAccess< dim >::n_compositional_fields ( ) const

Return the number of compositional fields specified in the input parameter file that will be advected along with the flow field.

§ get_end_time()

template<int dim>
double aspect::SimulatorAccess< dim >::get_end_time ( ) const

Return the simulation end time in seconds.

§ get_refinement_criteria()

template<int dim>
void aspect::SimulatorAccess< dim >::get_refinement_criteria ( Vector< float > &  estimated_error_per_cell) const

Compute the error indicators in the same way they are normally used for mesh refinement. The mesh is not refined when doing so, but the indicators can be used when generating graphical output to check why mesh refinement is proceeding as it is.

§ get_artificial_viscosity()

template<int dim>
void aspect::SimulatorAccess< dim >::get_artificial_viscosity ( Vector< float > &  viscosity_per_cell,
const bool  skip_interior_cells = false 
) const

Returns the entropy viscosity on each locally owned cell as it is used to stabilize the temperature equation.

Parameters
viscosity_per_cellOutput vector with as many entries as active cells. Each entry corresponding to a locally owned active cell index will contain the artificial viscosity for this cell.
skip_interior_cellsA boolean flag. If set to true the function will only compute the artificial viscosity in cells at boundaries.

§ get_artificial_viscosity_composition()

template<int dim>
void aspect::SimulatorAccess< dim >::get_artificial_viscosity_composition ( Vector< float > &  viscosity_per_cell,
const unsigned int  compositional_variable 
) const

Returns the entropy viscosity on each locally owned cell as it is used to stabilize the composition equation.

§ get_current_linearization_point()

template<int dim>
const LinearAlgebra::BlockVector& aspect::SimulatorAccess< dim >::get_current_linearization_point ( ) const

Return a reference to the vector that has the current linearization point of the entire system, i.e. the velocity and pressure variables as well as the temperature and compositional fields. This vector is associated with the DoFHandler object returned by get_dof_handler(). This vector is only different from the one returned by get_solution() during the solver phase.

Note
In general the vector is a distributed vector; however, it contains ghost elements for all locally relevant degrees of freedom.

§ get_solution()

template<int dim>
const LinearAlgebra::BlockVector& aspect::SimulatorAccess< dim >::get_solution ( ) const

Return a reference to the vector that has the current solution of the entire system, i.e. the velocity and pressure variables as well as the temperature and compositional fields. This vector is associated with the DoFHandler object returned by get_dof_handler().

Note
In general the vector is a distributed vector; however, it contains ghost elements for all locally relevant degrees of freedom.

§ get_old_solution()

template<int dim>
const LinearAlgebra::BlockVector& aspect::SimulatorAccess< dim >::get_old_solution ( ) const

Return a reference to the vector that has the solution of the entire system at the previous time step. This vector is associated with the DoFHandler object returned by get_stokes_dof_handler().

Note
In general the vector is a distributed vector; however, it contains ghost elements for all locally relevant degrees of freedom.

§ get_old_old_solution()

template<int dim>
const LinearAlgebra::BlockVector& aspect::SimulatorAccess< dim >::get_old_old_solution ( ) const

Return a reference to the vector that has the solution of the entire system at the second-to-last time step. This vector is associated with the DoFHandler object returned by get_stokes_dof_handler().

Note
In general the vector is a distributed vector; however, it contains ghost elements for all locally relevant degrees of freedom.

§ get_reaction_vector()

template<int dim>
const LinearAlgebra::BlockVector& aspect::SimulatorAccess< dim >::get_reaction_vector ( ) const

Return a reference to the vector that has the reactions computed by the operator splitting scheme in the current time step.

Note
In general the vector is a distributed vector; however, it contains ghost elements for all locally relevant degrees of freedom.

§ get_mesh_velocity()

template<int dim>
const LinearAlgebra::BlockVector& aspect::SimulatorAccess< dim >::get_mesh_velocity ( ) const

Return a reference to the vector that has the mesh velocity for simulations with mesh deformation.

Note
In general the vector is a distributed vector; however, it contains ghost elements for all locally relevant degrees of freedom.

§ get_dof_handler()

template<int dim>
const DoFHandler<dim>& aspect::SimulatorAccess< dim >::get_dof_handler ( ) const

Return a reference to the DoFHandler that is used to discretize the variables at the current time step.

§ get_fe()

template<int dim>
const FiniteElement<dim>& aspect::SimulatorAccess< dim >::get_fe ( ) const

Return a reference to the finite element that is used to discretize the variables at the current time step. This is the finite element for the entire, coupled problem, i.e., it contains sub-elements for velocity, pressure, temperature and all other variables in this problem (e.g., compositional variables, if used in this simulation).

§ get_system_matrix()

template<int dim>
const LinearAlgebra::BlockSparseMatrix& aspect::SimulatorAccess< dim >::get_system_matrix ( ) const

Return a reference to the system matrix at the current time step.

§ get_system_preconditioner_matrix()

template<int dim>
const LinearAlgebra::BlockSparseMatrix& aspect::SimulatorAccess< dim >::get_system_preconditioner_matrix ( ) const

Return a reference to the system preconditioner matrix at the current time step.

§ get_material_model()

template<int dim>
const MaterialModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_material_model ( ) const

Return a pointer to the material model to access functions like density().

§ get_gravity_model()

template<int dim>
const GravityModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_gravity_model ( ) const

Return a pointer to the gravity model description.

§ get_initial_topography_model()

template<int dim>
const InitialTopographyModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_initial_topography_model ( ) const

Return a pointer to the initial topography model.

§ get_geometry_model()

template<int dim>
const GeometryModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_geometry_model ( ) const

Return a pointer to the geometry model.

§ get_adiabatic_conditions()

template<int dim>
const AdiabaticConditions::Interface<dim>& aspect::SimulatorAccess< dim >::get_adiabatic_conditions ( ) const

Return a pointer to the object that describes the adiabatic conditions.

§ has_boundary_temperature()

template<int dim>
bool aspect::SimulatorAccess< dim >::has_boundary_temperature ( ) const

Return whether the current model has a boundary temperature object set. This is useful because a simulation does not actually have to declare any boundary temperature model, for example if all boundaries are insulating. In such cases, there is no boundary temperature model that can provide, for example, a minimal and maximal temperature on the boundary.

§ get_boundary_temperature_manager()

template<int dim>
const BoundaryTemperature::Manager<dim>& aspect::SimulatorAccess< dim >::get_boundary_temperature_manager ( ) const

Return an reference to the manager of the boundary temperature models. This can then, for example, be used to get the names of the initial temperature models used in a computation, or to compute the initial temperature for a given position.

§ get_boundary_heat_flux()

template<int dim>
const BoundaryHeatFlux::Interface<dim>& aspect::SimulatorAccess< dim >::get_boundary_heat_flux ( ) const

Return a reference to the object that describes heat flux boundary conditions.

§ has_boundary_composition()

template<int dim>
bool aspect::SimulatorAccess< dim >::has_boundary_composition ( ) const

Return whether the current model has a boundary composition object set. This is useful because a simulation does not actually have to declare any boundary composition model, for example if all boundaries are reflecting. In such cases, there is no boundary composition model.

§ get_boundary_composition_manager()

template<int dim>
const BoundaryComposition::Manager<dim>& aspect::SimulatorAccess< dim >::get_boundary_composition_manager ( ) const

Return an reference to the manager of the boundary composition models. This can then, for example, be used to get the names of the boundary composition models used in a computation, or to compute the boundary composition for a given position.

§ get_boundary_traction_manager()

template<int dim>
const BoundaryTraction::Manager<dim>& aspect::SimulatorAccess< dim >::get_boundary_traction_manager ( ) const

Return an reference to the manager of the boundary traction models. This can then, for example, be used to get the names of the boundary traction models used in a computation, or to compute the boundary traction for a given position.

§ get_initial_temperature_manager_pointer()

template<int dim>
std::shared_ptr<const InitialTemperature::Manager<dim> > aspect::SimulatorAccess< dim >::get_initial_temperature_manager_pointer ( ) const

Return a reference to the manager of the initial temperature models. This can then, for example, be used to get the names of the initial temperature models used in a computation, or to compute the initial temperature for a given position.

While the Simulator class creates a shared pointer to an initial temperature manager before the first time step, it releases the pointer once it no longer needs access to the initial compositions. As a consequence, you can only call this function during the first time step.

If the Simulator's shared pointer were the only one that points to the initial temperature manager object, that would also destroy the object pointed to. However, plugin classes can have member variables that are also shared pointers to these manager objects, and if you initialize such a shared pointer from the result of this function – typically in the initialize() function of a plugin class – then the Simulator giving up its shared pointer does not actually destroy the manager object but extends its lifetime until the last plugin that has a pointer to it is destroyed itself. As a consequence, if you need access to the initial temperature in a plugin, you will need to keep a shared pointer to it around for as long as you need it.

§ get_initial_temperature_manager()

template<int dim>
const InitialTemperature::Manager<dim>& aspect::SimulatorAccess< dim >::get_initial_temperature_manager ( ) const

Return a reference to the manager of the initial temperature model. This can then, for example, be used to get the names of the initial temperature models used in a computation.

While the Simulator class creates a shared pointer to an initial temperature manager before the first time step, it releases the pointer once it no longer needs access to the initial temperature. As a consequence, you can only call this function during the first time step. If a plugin needs access to the initial temperature at a later time, it has to store its own shared pointer to that object, and that is what can be achieved using the get_initial_temperature_manager_pointer() function above.

§ get_initial_composition_manager_pointer()

template<int dim>
std::shared_ptr<const InitialComposition::Manager<dim> > aspect::SimulatorAccess< dim >::get_initial_composition_manager_pointer ( ) const

Return a pointer to the manager of the initial composition model. This can then, for example, be used to get the names of the initial composition models used in a computation.

While the Simulator class creates a shared pointer to an initial composition manager before the first time step, it releases the pointer once it no longer needs access to the initial compositions. As a consequence, you can only call this function during the first time step.

If the Simulator's shared pointer were the only one that points to the initial composition manager object, that would also destroy the object pointed to. However, plugin classes can have member variables that are also shared pointers to these manager objects, and if you initialize such a shared pointer from the result of this function – typically in the initialize() function of a plugin class – then the Simulator giving up its shared pointer does not actually destroy the manager object but extends its lifetime until the last plugin that has a pointer to it is destroyed itself. As a consequence, if you need access to the initial compositions in a plugin, you will need to keep a shared pointer to it around for as long as you need it.

§ get_initial_composition_manager()

template<int dim>
const InitialComposition::Manager<dim>& aspect::SimulatorAccess< dim >::get_initial_composition_manager ( ) const

Return a reference to the manager of the initial composition model. This can then, for example, be used to get the names of the initial composition models used in a computation.

While the Simulator class creates a shared pointer to an initial composition manager before the first time step, it releases the pointer once it no longer needs access to the initial compositions. As a consequence, you can only call this function during the first time step. If a plugin needs access to the initial composition at a later time, it has to store its own shared pointer to that object, and that is what can be achieved using the get_initial_composition_manager_pointer() function above.

§ get_fixed_temperature_boundary_indicators()

template<int dim>
const std::set<types::boundary_id>& aspect::SimulatorAccess< dim >::get_fixed_temperature_boundary_indicators ( ) const

Return a set of boundary indicators that describes which of the boundaries have a fixed temperature.

§ get_fixed_heat_flux_boundary_indicators()

template<int dim>
const std::set<types::boundary_id>& aspect::SimulatorAccess< dim >::get_fixed_heat_flux_boundary_indicators ( ) const

Return a set of boundary indicators that describes which of the boundaries have a fixed heat flux.

§ get_fixed_composition_boundary_indicators()

template<int dim>
const std::set<types::boundary_id>& aspect::SimulatorAccess< dim >::get_fixed_composition_boundary_indicators ( ) const

Return a set of boundary indicators that describes which of the boundaries have a fixed composition.

§ get_mesh_deformation_boundary_indicators()

template<int dim>
const std::set<types::boundary_id>& aspect::SimulatorAccess< dim >::get_mesh_deformation_boundary_indicators ( ) const

Return a set of boundary indicators that describes which of the boundaries have a mesh deformation boundary condition. Note that it does not specify which boundaries have which mesh deformation condition, only which boundaries have a mesh deformation condition.

§ get_boundary_velocity_manager()

template<int dim>
const BoundaryVelocity::Manager<dim>& aspect::SimulatorAccess< dim >::get_boundary_velocity_manager ( ) const

Return an reference to the manager of the boundary velocity models. This can then, for example, be used to get the names of the boundary velocity models used in a computation, or to compute the boundary velocity for a given position.

§ get_heating_model_manager()

template<int dim>
const HeatingModel::Manager<dim>& aspect::SimulatorAccess< dim >::get_heating_model_manager ( ) const

Return a pointer to the manager of the heating model. This can then, for example, be used to get the names of the heating models used in a computation.

§ get_mesh_refinement_manager()

template<int dim>
const MeshRefinement::Manager<dim>& aspect::SimulatorAccess< dim >::get_mesh_refinement_manager ( ) const

Return a reference to the manager of the mesh refinement strategies. this can then, for example, be used to get the names of the active refinement strategies for such purposes as confirming that a particular one has been included.

§ get_melt_handler()

template<int dim>
const MeltHandler<dim>& aspect::SimulatorAccess< dim >::get_melt_handler ( ) const

Return a reference to the melt handler.

§ get_volume_of_fluid_handler()

template<int dim>
const VolumeOfFluidHandler<dim>& aspect::SimulatorAccess< dim >::get_volume_of_fluid_handler ( ) const

Return a reference to the VolumeOfFluid handler.

§ get_newton_handler()

template<int dim>
const NewtonHandler<dim>& aspect::SimulatorAccess< dim >::get_newton_handler ( ) const

Return a reference to the Newton handler that controls the Newton iteration to resolve nonlinearities.

§ get_mesh_deformation_handler()

template<int dim>
const MeshDeformation::MeshDeformationHandler<dim>& aspect::SimulatorAccess< dim >::get_mesh_deformation_handler ( ) const

Return a reference to the mesh deformation handler. This function will throw an exception if mesh deformation is not activated.

§ get_lateral_averaging()

template<int dim>
const LateralAveraging<dim>& aspect::SimulatorAccess< dim >::get_lateral_averaging ( ) const

Return a reference to the lateral averaging object owned by the simulator, which can be used to query lateral averages of various quantities at depth slices.

§ get_current_constraints()

template<int dim>
const AffineConstraints<double>& aspect::SimulatorAccess< dim >::get_current_constraints ( ) const

Return a pointer to the object that describes the DoF constraints for the time step we are currently solving.

§ simulator_is_past_initialization()

template<int dim>
bool aspect::SimulatorAccess< dim >::simulator_is_past_initialization ( ) const

Return whether the Simulator object has been completely initialized and has started to run its time stepping loop.

This function is useful to determine in a plugin whether some of the information one can query about the Simulator can be trusted because it has already been set up completely. For example, while the Simulator is being set up, plugins may already have access to it via the current SimulatorAccess object, but data such as the current time, the time step number, etc, may all still be in a state that is not reliable since it may not have been initialized at that time. (As an example, at the very beginning of the Simulator object's existence, the time step number is set to numbers::invalid_unsigned_int, and only when the time step loop is started is it set to a valid value). Similar examples are that at some point the Simulator sets the solution vector to the correct size, but only at a later time (though before the time stepping starts), the contents of the solution vector are set based on the initial conditions specified in the input file.

Only when this function returns true is all of the information returned by the SimulatorAccess object reliable and correct.

Note
This function returns true starting with the moment where the Simulator starts the time stepping loop. However, it may temporarily revert to returning false if, for example, the Simulator does the initial mesh refinement steps where it starts the time loop, but then goes back to initialization steps (mesh refinement, interpolation of initial conditions, etc.) before re-starting the time loop.

§ get_pressure_scaling()

template<int dim>
double aspect::SimulatorAccess< dim >::get_pressure_scaling ( ) const

Return the value used for rescaling the pressure in the linear solver.

§ pressure_rhs_needs_compatibility_modification()

template<int dim>
bool aspect::SimulatorAccess< dim >::pressure_rhs_needs_compatibility_modification ( ) const

Return whether we need to apply a compatibility modification to the pressure right hand side. See documentation of Simulator<dim>::do_pressure_rhs_compatibility_modification for more information.

§ model_has_prescribed_stokes_solution()

template<int dim>
bool aspect::SimulatorAccess< dim >::model_has_prescribed_stokes_solution ( ) const

Return whether the model uses a prescribed Stokes solution.

§ get_composition_values_at_q_point()

template<int dim>
static void aspect::SimulatorAccess< dim >::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 
)
static

A convenience function that copies the values of the compositional fields at the quadrature point q given as input parameter to the output vector composition_values_at_q_point.

§ get_statistics_object()

template<int dim>
TableHandler& aspect::SimulatorAccess< dim >::get_statistics_object ( ) const

Return a writable reference to the statistics object into which you can store additional data that then shows up in the output_dir/statistics file.

Postprocessor objects get a reference to this object automatically when called, but other plugins may not. They do not usually produce output anyway, but through this function they can still record information as necessary.

Returns

§ get_postprocess_manager()

template<int dim>
const Postprocess::Manager<dim>& aspect::SimulatorAccess< dim >::get_postprocess_manager ( ) const

Return a reference to the melt handler.

§ get_particle_world() [1/2]

template<int dim>
const Particle::World<dim>& aspect::SimulatorAccess< dim >::get_particle_world ( ) const

Returns a const reference to the particle world, in case anyone wants to query something about particles.

§ get_particle_world() [2/2]

template<int dim>
Particle::World<dim>& aspect::SimulatorAccess< dim >::get_particle_world ( )

Returns a reference to the particle world, in case anyone wants to change something within the particle world. Use with care, usually you want to only let the functions within the particle subsystem change member variables of the particle world.

§ is_stokes_matrix_free()

template<int dim>
bool aspect::SimulatorAccess< dim >::is_stokes_matrix_free ( )

Return true if using the block GMG Stokes solver.

§ get_stokes_matrix_free()

template<int dim>
const StokesMatrixFreeHandler<dim>& aspect::SimulatorAccess< dim >::get_stokes_matrix_free ( ) const

Return a reference to the StokesMatrixFreeHandler that controls the matrix-free Stokes solver.

§ compute_net_angular_momentum()

template<int dim>
RotationProperties<dim> aspect::SimulatorAccess< dim >::compute_net_angular_momentum ( const bool  use_constant_density,
const LinearAlgebra::BlockVector solution,
const bool  limit_to_top_faces = false 
) const

Compute the angular momentum and other rotation properties of the velocities in the given solution vector.

Parameters
use_constant_densitydetermines whether to use a constant density (which corresponds to computing a net rotation instead of net angular momentum).
solutionSolution vector to compute the properties for.
limit_to_top_facesallows to only compute the net angular momentum (or net rotation) of the top surface.

Member Data Documentation

§ simulator

template<int dim>
const Simulator<dim>* aspect::SimulatorAccess< dim >::simulator
private

A pointer to the simulator object to which we want to get access.

Definition at line 983 of file simulator_access.h.


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