ASPECT
|
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::MaterialUtilities::PhaseFunctionDiscrete< 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::ReactionModel::GrainSizeEvolution< dim >, aspect::MaterialModel::ReactionModel::Katz2003MantleMelting< dim >, aspect::MaterialModel::ReactiveFluidTransport< dim >, aspect::MaterialModel::ReplaceLithosphereViscosity< dim >, aspect::MaterialModel::Rheology::AsciiDepthProfile< dim >, aspect::MaterialModel::Rheology::CompositeViscoPlastic< dim >, aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >, aspect::MaterialModel::Rheology::ConstantViscosityPrefactors< dim >, aspect::MaterialModel::Rheology::DiffusionCreep< dim >, aspect::MaterialModel::Rheology::DiffusionDislocation< dim >, aspect::MaterialModel::Rheology::DislocationCreep< dim >, aspect::MaterialModel::Rheology::DruckerPrager< dim >, aspect::MaterialModel::Rheology::DruckerPragerPower< 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::DistanceWeightedAverage< dim >, aspect::Particle::Interpolator::HarmonicAverage< dim >, aspect::Particle::Interpolator::NearestNeighbor< dim >, aspect::Particle::Interpolator::QuadraticLeastSquares< dim >, aspect::Particle::Manager< 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::ElasticTensorDecomposition< 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::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::ODEStatistics< 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::DarcyVelocity< 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::TimeStepping::RepeatOnNonlinearFail< 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::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 |
Private Attributes | |
const Simulator< dim > * | simulator |
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
.
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.
aspect::SimulatorAccess< dim >::SimulatorAccess | ( | const Simulator< dim > & | simulator_object | ) |
Create a SimulatorAccess object that is already initialized for a particular Simulator.
|
virtualdefault |
Destructor. Does nothing but is virtual so that derived classes destructors are also virtual.
|
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.
simulator_object | A reference to the main simulator object. |
Reimplemented in aspect::MeltHandler< dim >, and aspect::TimeStepping::Manager< 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.
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).
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.
SimulatorSignals<dim>& aspect::SimulatorAccess< dim >::get_signals | ( | ) | const |
Get Access to the structure containing the signals of the simulator.
MPI_Comm aspect::SimulatorAccess< dim >::get_mpi_communicator | ( | ) | const |
Return the MPI communicator for this simulation.
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.
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.
double aspect::SimulatorAccess< dim >::get_time | ( | ) | const |
Return the current simulation time in seconds.
double aspect::SimulatorAccess< dim >::get_timestep | ( | ) | const |
Return the size of the current time step.
double aspect::SimulatorAccess< dim >::get_old_timestep | ( | ) | const |
Return the size of the last time step.
unsigned int aspect::SimulatorAccess< dim >::get_timestep_number | ( | ) | const |
Return the current number of a time step.
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.
unsigned int aspect::SimulatorAccess< dim >::get_nonlinear_iteration | ( | ) | const |
Return the current nonlinear iteration number of a time step.
const parallel::distributed::Triangulation<dim>& aspect::SimulatorAccess< dim >::get_triangulation | ( | ) | const |
Return a reference to the triangulation in use by the simulator object.
double aspect::SimulatorAccess< dim >::get_volume | ( | ) | const |
Return the global volume of the computational domain.
const Mapping<dim>& aspect::SimulatorAccess< dim >::get_mapping | ( | ) | const |
Return a reference to the mapping used to describe the boundary of the domain.
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., '/').
bool aspect::SimulatorAccess< dim >::include_adiabatic_heating | ( | ) | const |
Return whether we use the adiabatic heating term.
bool aspect::SimulatorAccess< dim >::include_latent_heat | ( | ) | const |
Return whether we use the latent heat term.
bool aspect::SimulatorAccess< dim >::include_melt_transport | ( | ) | const |
Return whether we solve the equations for melt transport.
int aspect::SimulatorAccess< dim >::get_stokes_velocity_degree | ( | ) | const |
Return the stokes velocity degree.
double aspect::SimulatorAccess< dim >::get_adiabatic_surface_temperature | ( | ) | const |
Return the adiabatic surface temperature.
double aspect::SimulatorAccess< dim >::get_surface_pressure | ( | ) | const |
Return the adiabatic surface pressure.
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.
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.
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.
double aspect::SimulatorAccess< dim >::get_end_time | ( | ) | const |
Return the simulation end time in seconds.
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.
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.
viscosity_per_cell | Output 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_cells | A boolean flag. If set to true the function will only compute the artificial viscosity in cells at boundaries. |
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.
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.
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().
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().
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().
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.
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.
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.
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).
const LinearAlgebra::BlockSparseMatrix& aspect::SimulatorAccess< dim >::get_system_matrix | ( | ) | const |
Return a reference to the system matrix at the current time step.
const LinearAlgebra::BlockSparseMatrix& aspect::SimulatorAccess< dim >::get_system_preconditioner_matrix | ( | ) | const |
Return a reference to the system preconditioner matrix at the current time step.
const MaterialModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_material_model | ( | ) | const |
Return a pointer to the material model to access functions like density().
const GravityModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_gravity_model | ( | ) | const |
Return a pointer to the gravity model description.
const InitialTopographyModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_initial_topography_model | ( | ) | const |
Return a pointer to the initial topography model.
const GeometryModel::Interface<dim>& aspect::SimulatorAccess< dim >::get_geometry_model | ( | ) | const |
Return a pointer to the geometry model.
const AdiabaticConditions::Interface<dim>& aspect::SimulatorAccess< dim >::get_adiabatic_conditions | ( | ) | const |
Return a pointer to the object that describes the adiabatic conditions.
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.
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.
const BoundaryHeatFlux::Interface<dim>& aspect::SimulatorAccess< dim >::get_boundary_heat_flux | ( | ) | const |
Return a reference to the object that describes heat flux boundary conditions.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
const MeltHandler<dim>& aspect::SimulatorAccess< dim >::get_melt_handler | ( | ) | const |
Return a reference to the melt handler.
const VolumeOfFluidHandler<dim>& aspect::SimulatorAccess< dim >::get_volume_of_fluid_handler | ( | ) | const |
Return a reference to the VolumeOfFluid handler.
const NewtonHandler<dim>& aspect::SimulatorAccess< dim >::get_newton_handler | ( | ) | const |
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.
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.
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.
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.
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. double aspect::SimulatorAccess< dim >::get_pressure_scaling | ( | ) | const |
Return the value used for rescaling the pressure in the linear solver.
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.
bool aspect::SimulatorAccess< dim >::model_has_prescribed_stokes_solution | ( | ) | const |
Return whether the model uses a prescribed Stokes solution.
|
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.
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.
const Postprocess::Manager<dim>& aspect::SimulatorAccess< dim >::get_postprocess_manager | ( | ) | const |
Return a reference to the melt handler.
unsigned int aspect::SimulatorAccess< dim >::n_particle_managers | ( | ) | const |
Returns the number of active particle managers.
const Particle::Manager<dim>& aspect::SimulatorAccess< dim >::get_particle_manager | ( | const unsigned int | particle_manager_index | ) | const |
Returns a const reference to a single particle manager given the index.
Particle::Manager<dim>& aspect::SimulatorAccess< dim >::get_particle_manager | ( | const unsigned int | particle_manager_index | ) |
Returns a reference to a single particle manager, in case anyone wants to change something within the particle manager. Use with care, usually you want to only let the functions within the particle subsystem change member variables of the particle manager.
bool aspect::SimulatorAccess< dim >::is_stokes_matrix_free | ( | ) |
Return true if using the block GMG Stokes solver.
const StokesMatrixFreeHandler<dim>& aspect::SimulatorAccess< dim >::get_stokes_matrix_free | ( | ) | const |
Return a reference to the StokesMatrixFreeHandler that controls the matrix-free Stokes solver.
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.
use_constant_density | determines whether to use a constant density (which corresponds to computing a net rotation instead of net angular momentum). |
solution | Solution vector to compute the properties for. |
limit_to_top_faces | allows to only compute the net angular momentum (or net rotation) of the top surface. |
|
private |
A pointer to the simulator object to which we want to get access.
Definition at line 989 of file simulator_access.h.