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
209 virtual void initialize_simulator (
const Simulator<dim> &simulator_object);
222 introspection ()
const;
232 get_simulator ()
const;
239 get_parameters ()
const;
251 get_mpi_communicator ()
const;
260 get_computing_timer ()
const;
267 const ConditionalOStream &
273 double get_time ()
const;
279 get_timestep ()
const;
285 get_old_timestep ()
const;
291 get_timestep_number ()
const;
299 get_timestepping_manager()
const;
305 get_nonlinear_iteration ()
const;
311 const parallel::distributed::Triangulation<dim> &
312 get_triangulation ()
const;
325 get_mapping ()
const;
333 get_output_directory ()
const;
339 include_adiabatic_heating ()
const;
345 include_latent_heat ()
const;
351 include_melt_transport ()
const;
357 get_stokes_velocity_degree ()
const;
363 get_adiabatic_surface_temperature ()
const;
369 get_surface_pressure ()
const;
377 convert_output_to_years ()
const;
389 get_pre_refinement_step ()
const;
396 n_compositional_fields ()
const;
402 get_end_time ()
const;
411 get_refinement_criteria(Vector<float> &estimated_error_per_cell)
const;
424 get_artificial_viscosity(Vector<float> &viscosity_per_cell,
425 const bool skip_interior_cells =
false)
const;
432 get_artificial_viscosity_composition(Vector<float> &viscosity_per_cell,
433 const unsigned int compositional_variable)
const;
452 get_current_linearization_point ()
const;
465 get_solution ()
const;
476 get_old_solution ()
const;
487 get_old_old_solution ()
const;
497 get_reaction_vector ()
const;
507 get_mesh_velocity ()
const;
513 const DoFHandler<dim> &
514 get_dof_handler ()
const;
524 const FiniteElement<dim> &
531 get_system_matrix ()
const;
537 get_system_preconditioner_matrix ()
const;
550 get_material_model ()
const;
556 get_gravity_model ()
const;
562 get_initial_topography_model ()
const;
569 const std::shared_ptr<const InitialTopographyModel::Interface<dim>>
570 get_initial_topography_model_pointer ()
const;
576 get_geometry_model ()
const;
584 get_adiabatic_conditions ()
const;
594 bool has_boundary_temperature ()
const;
603 get_boundary_temperature_manager ()
const;
612 get_boundary_convective_heating_manager ()
const;
619 get_boundary_heat_flux ()
const;
628 bool has_boundary_composition ()
const;
637 get_boundary_composition_manager ()
const;
646 get_boundary_traction_manager ()
const;
674 std::shared_ptr<const InitialTemperature::Manager<dim>>
675 get_initial_temperature_manager_pointer ()
const;
692 get_initial_temperature_manager ()
const;
719 std::shared_ptr<const InitialComposition::Manager<dim>>
720 get_initial_composition_manager_pointer ()
const;
737 get_initial_composition_manager ()
const;
743 const std::set<types::boundary_id> &
744 get_fixed_temperature_boundary_indicators ()
const;
750 const std::set<types::boundary_id> &
751 get_fixed_heat_flux_boundary_indicators ()
const;
757 const std::set<types::boundary_id> &
758 get_fixed_convective_heating_boundary_indicators ()
const;
764 const std::set<types::boundary_id> &
765 get_fixed_composition_boundary_indicators ()
const;
773 const std::set<types::boundary_id> &
774 get_mesh_deformation_boundary_indicators ()
const;
783 get_boundary_velocity_manager ()
const;
791 get_heating_model_manager ()
const;
800 get_mesh_refinement_manager ()
const;
806 get_melt_handler ()
const;
812 get_volume_of_fluid_handler ()
const;
819 get_newton_handler ()
const;
821 #ifdef ASPECT_WITH_WORLD_BUILDER 839 get_world_builder ()
const;
850 std::shared_ptr<const WorldBuilder::World>
851 get_world_builder_pointer ()
const;
858 get_mesh_deformation_handler ()
const;
866 get_lateral_averaging ()
const;
872 const AffineConstraints<double> &
873 get_current_constraints ()
const;
907 bool simulator_is_past_initialization ()
const;
914 get_pressure_scaling ()
const;
923 pressure_rhs_needs_compatibility_modification()
const;
929 model_has_prescribed_stokes_solution ()
const;
938 get_composition_values_at_q_point (
const std::vector<std::vector<double>> &composition_values,
939 const unsigned int q,
940 std::vector<double> &composition_values_at_q_point);
953 TableHandler &get_statistics_object()
const;
959 get_postprocess_manager ()
const;
965 n_particle_managers()
const;
972 get_particle_manager(
const unsigned int particle_manager_index)
const;
981 get_particle_manager(
const unsigned int particle_manager_index);
986 bool is_stokes_matrix_free();
993 get_stokes_matrix_free ()
const;
1007 compute_net_angular_momentum(
const bool use_constant_density,
1009 const bool limit_to_top_faces =
false)
const;
1047 void denormalize_pressure(
const double pressure_adjustment,
const Simulator< dim > * simulator
::TrilinosWrappers::MPI::BlockVector BlockVector
::TrilinosWrappers::BlockSparseMatrix BlockSparseMatrix