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;
367 include_adiabatic_heating ()
const;
373 include_latent_heat ()
const;
379 include_melt_transport ()
const;
385 get_stokes_velocity_degree ()
const;
391 get_adiabatic_surface_temperature ()
const;
397 get_surface_pressure ()
const;
405 convert_output_to_years ()
const;
417 get_pre_refinement_step ()
const;
424 n_compositional_fields ()
const;
430 get_end_time ()
const;
439 get_refinement_criteria(Vector<float> &estimated_error_per_cell)
const;
452 get_artificial_viscosity(Vector<float> &viscosity_per_cell,
453 const bool skip_interior_cells =
false)
const;
460 get_artificial_viscosity_composition(Vector<float> &viscosity_per_cell,
461 const unsigned int compositional_variable)
const;
480 get_current_linearization_point ()
const;
493 get_solution ()
const;
504 get_old_solution ()
const;
515 get_old_old_solution ()
const;
525 get_reaction_vector ()
const;
535 get_mesh_velocity ()
const;
541 const DoFHandler<dim> &
542 get_dof_handler ()
const;
552 const FiniteElement<dim> &
559 get_system_matrix ()
const;
565 get_system_preconditioner_matrix ()
const;
578 get_material_model ()
const;
584 get_gravity_model ()
const;
590 get_initial_topography_model ()
const;
597 const std::shared_ptr<const InitialTopographyModel::Interface<dim>>
598 get_initial_topography_model_pointer ()
const;
604 get_geometry_model ()
const;
612 get_adiabatic_conditions ()
const;
622 bool has_boundary_temperature ()
const;
631 get_boundary_temperature_manager ()
const;
640 get_boundary_convective_heating_manager ()
const;
647 get_boundary_heat_flux ()
const;
656 bool has_boundary_composition ()
const;
665 get_boundary_composition_manager ()
const;
674 get_boundary_traction_manager ()
const;
702 std::shared_ptr<const InitialTemperature::Manager<dim>>
703 get_initial_temperature_manager_pointer ()
const;
720 get_initial_temperature_manager ()
const;
747 std::shared_ptr<const InitialComposition::Manager<dim>>
748 get_initial_composition_manager_pointer ()
const;
765 get_initial_composition_manager ()
const;
771 const std::set<types::boundary_id> &
772 get_fixed_temperature_boundary_indicators ()
const;
778 const std::set<types::boundary_id> &
779 get_fixed_heat_flux_boundary_indicators ()
const;
785 const std::set<types::boundary_id> &
786 get_fixed_convective_heating_boundary_indicators ()
const;
792 const std::set<types::boundary_id> &
793 get_fixed_composition_boundary_indicators ()
const;
801 const std::set<types::boundary_id> &
802 get_mesh_deformation_boundary_indicators ()
const;
811 get_boundary_velocity_manager ()
const;
819 get_heating_model_manager ()
const;
828 get_mesh_refinement_manager ()
const;
834 get_melt_handler ()
const;
840 get_volume_of_fluid_handler ()
const;
847 get_newton_handler ()
const;
849 #ifdef ASPECT_WITH_WORLD_BUILDER 867 get_world_builder ()
const;
878 std::shared_ptr<const WorldBuilder::World>
879 get_world_builder_pointer ()
const;
886 get_mesh_deformation_handler ()
const;
894 get_lateral_averaging ()
const;
900 const AffineConstraints<double> &
901 get_current_constraints ()
const;
935 bool simulator_is_past_initialization ()
const;
942 get_pressure_scaling ()
const;
951 pressure_rhs_needs_compatibility_modification()
const;
957 model_has_prescribed_stokes_solution ()
const;
966 get_composition_values_at_q_point (
const std::vector<std::vector<double>> &composition_values,
967 const unsigned int q,
968 std::vector<double> &composition_values_at_q_point);
981 TableHandler &get_statistics_object()
const;
987 get_postprocess_manager ()
const;
993 n_particle_managers()
const;
1000 get_particle_manager(
const unsigned int particle_manager_index)
const;
1009 get_particle_manager(
const unsigned int particle_manager_index);
1014 bool is_stokes_matrix_free();
1021 get_stokes_matrix_free ()
const;
1035 compute_net_angular_momentum(
const bool use_constant_density,
1037 const bool limit_to_top_faces =
false)
const;
1075 void denormalize_pressure(
const double pressure_adjustment,
const Simulator< dim > * simulator
::TrilinosWrappers::MPI::BlockVector BlockVector
::TrilinosWrappers::BlockSparseMatrix BlockSparseMatrix