22 #ifndef _aspect_simulator_access_h 23 #define _aspect_simulator_access_h 29 #include <deal.II/base/table_handler.h> 30 #include <deal.II/base/timer.h> 31 #include <deal.II/base/conditional_ostream.h> 32 #include <deal.II/distributed/tria.h> 33 #include <deal.II/dofs/dof_handler.h> 34 #include <deal.II/fe/fe.h> 35 #include <deal.II/fe/mapping_q.h> 36 #include <deal.II/lac/affine_constraints.h> 46 template <
int dim>
class Simulator;
51 namespace GravityModel
56 namespace HeatingModel
61 namespace MaterialModel
66 namespace InitialTemperature
72 namespace BoundaryTemperature
78 namespace BoundaryHeatFlux
83 namespace BoundaryConvectiveHeating
89 namespace BoundaryComposition
95 namespace BoundaryTraction
101 namespace BoundaryVelocity
107 namespace InitialComposition
113 namespace InitialTopographyModel
118 namespace MeshRefinement
123 namespace AdiabaticConditions
128 namespace Postprocess
136 namespace MeshDeformation
138 template <
int dim>
class MeshDeformationHandler;
150 namespace TimeStepping
237 virtual void initialize_simulator (
const Simulator<dim> &simulator_object);
250 introspection ()
const;
260 get_simulator ()
const;
267 get_parameters ()
const;
279 get_mpi_communicator ()
const;
288 get_computing_timer ()
const;
295 const ConditionalOStream &
301 double get_time ()
const;
307 get_timestep ()
const;
313 get_old_timestep ()
const;
319 get_timestep_number ()
const;
327 get_timestepping_manager()
const;
333 get_nonlinear_iteration ()
const;
339 const parallel::distributed::Triangulation<dim> &
340 get_triangulation ()
const;
353 get_mapping ()
const;
361 get_output_directory ()
const;
370 get_checkpoint_id ()
const;
376 include_adiabatic_heating ()
const;
382 include_latent_heat ()
const;
388 include_melt_transport ()
const;
394 get_stokes_velocity_degree ()
const;
400 get_adiabatic_surface_temperature ()
const;
406 get_surface_pressure ()
const;
414 convert_output_to_years ()
const;
426 get_pre_refinement_step ()
const;
433 n_compositional_fields ()
const;
439 get_end_time ()
const;
448 get_refinement_criteria(Vector<float> &estimated_error_per_cell)
const;
461 get_artificial_viscosity(Vector<float> &viscosity_per_cell,
462 const bool skip_interior_cells =
false)
const;
469 get_artificial_viscosity_composition(Vector<float> &viscosity_per_cell,
470 const unsigned int compositional_variable)
const;
489 get_current_linearization_point ()
const;
502 get_solution ()
const;
513 get_old_solution ()
const;
524 get_old_old_solution ()
const;
534 get_reaction_vector ()
const;
544 get_mesh_velocity ()
const;
550 const DoFHandler<dim> &
551 get_dof_handler ()
const;
561 const FiniteElement<dim> &
568 get_system_matrix ()
const;
574 get_system_preconditioner_matrix ()
const;
587 get_material_model ()
const;
593 get_gravity_model ()
const;
599 get_initial_topography_model ()
const;
606 const std::shared_ptr<const InitialTopographyModel::Interface<dim>>
607 get_initial_topography_model_pointer ()
const;
613 get_geometry_model ()
const;
621 get_adiabatic_conditions ()
const;
631 bool has_boundary_temperature ()
const;
640 get_boundary_temperature_manager ()
const;
649 get_boundary_convective_heating_manager ()
const;
656 get_boundary_heat_flux ()
const;
665 bool has_boundary_composition ()
const;
674 get_boundary_composition_manager ()
const;
683 get_boundary_traction_manager ()
const;
711 std::shared_ptr<const InitialTemperature::Manager<dim>>
712 get_initial_temperature_manager_pointer ()
const;
729 get_initial_temperature_manager ()
const;
756 std::shared_ptr<const InitialComposition::Manager<dim>>
757 get_initial_composition_manager_pointer ()
const;
774 get_initial_composition_manager ()
const;
780 const std::set<types::boundary_id> &
781 get_fixed_temperature_boundary_indicators ()
const;
787 const std::set<types::boundary_id> &
788 get_fixed_heat_flux_boundary_indicators ()
const;
794 const std::set<types::boundary_id> &
795 get_fixed_convective_heating_boundary_indicators ()
const;
801 const std::set<types::boundary_id> &
802 get_fixed_composition_boundary_indicators ()
const;
810 const std::set<types::boundary_id> &
811 get_mesh_deformation_boundary_indicators ()
const;
820 get_boundary_velocity_manager ()
const;
828 get_heating_model_manager ()
const;
837 get_mesh_refinement_manager ()
const;
843 get_melt_handler ()
const;
849 get_volume_of_fluid_handler ()
const;
856 get_newton_handler ()
const;
858 #ifdef ASPECT_WITH_WORLD_BUILDER 876 get_world_builder ()
const;
887 std::shared_ptr<const WorldBuilder::World>
888 get_world_builder_pointer ()
const;
895 get_mesh_deformation_handler ()
const;
903 get_lateral_averaging ()
const;
909 const AffineConstraints<double> &
910 get_current_constraints ()
const;
944 bool simulator_is_past_initialization ()
const;
951 get_pressure_scaling ()
const;
960 pressure_rhs_needs_compatibility_modification()
const;
966 model_has_prescribed_stokes_solution ()
const;
975 get_composition_values_at_q_point (
const std::vector<std::vector<double>> &composition_values,
976 const unsigned int q,
977 std::vector<double> &composition_values_at_q_point);
990 TableHandler &get_statistics_object()
const;
996 get_postprocess_manager ()
const;
1002 n_particle_managers()
const;
1009 get_particle_manager(
const unsigned int particle_manager_index)
const;
1018 get_particle_manager(
const unsigned int particle_manager_index);
1023 bool is_stokes_matrix_free();
1030 get_stokes_matrix_free ()
const;
1044 compute_net_angular_momentum(
const bool use_constant_density,
1046 const bool limit_to_top_faces =
false)
const;
1084 void denormalize_pressure(
const double pressure_adjustment,
::TrilinosWrappers::MPI::BlockVector BlockVector
::SmartPointer< T, P > ObserverPointer
::TrilinosWrappers::BlockSparseMatrix BlockSparseMatrix
ObserverPointer< const Simulator< dim >, SimulatorAccess< dim > > simulator