21 #ifndef _aspect_simulator_assemblers_interface_h 22 #define _aspect_simulator_assemblers_interface_h 28 #include <deal.II/fe/fe_values.h> 35 struct AdvectionField;
76 typename DoFHandler<dim>::active_cell_iterator
cell;
95 const Quadrature<dim> &quadrature,
96 const Mapping<dim> &mapping,
97 const UpdateFlags update_flags,
98 const unsigned int n_compositional_fields,
99 const unsigned int stokes_dofs_per_cell,
100 const bool add_compaction_pressure,
101 const bool rebuild_matrix,
102 const bool use_bfbt);
103 StokesPreconditioner (
const StokesPreconditioner &scratch);
105 ~StokesPreconditioner ()
override;
109 void reinit (
const typename DoFHandler<dim>::active_cell_iterator &cell_ref);
151 const Mapping<dim> &mapping,
152 const Quadrature<dim> &quadrature,
153 const Quadrature<dim-1> &face_quadrature,
154 const UpdateFlags update_flags,
155 const UpdateFlags face_update_flags,
156 const unsigned int n_compositional_fields,
157 const unsigned int stokes_dofs_per_cell,
158 const bool add_compaction_pressure,
159 const bool use_reference_density_profile,
160 const bool rebuild_stokes_matrix,
161 const bool rebuild_newton_stokes_matrix,
162 const bool use_bfbt);
170 void reinit (
const typename DoFHandler<dim>::active_cell_iterator &cell_ref,
171 const unsigned face_number_ref);
219 const FiniteElement<dim> &advection_element,
220 const Mapping<dim> &mapping,
221 const Quadrature<dim> &quadrature,
222 const Quadrature<dim-1> &face_quadrature,
223 const UpdateFlags update_flags,
224 const UpdateFlags face_update_flags,
225 const unsigned int n_compositional_fields,
227 AdvectionSystem (
const AdvectionSystem &scratch);
231 void reinit (
const typename DoFHandler<dim>::active_cell_iterator &cell_ref);
367 StokesPreconditioner (
const StokesPreconditioner &data);
369 ~StokesPreconditioner ()
override =
default;
381 void extract_stokes_dof_indices(
const std::vector<types::global_dof_index> &all_dof_indices,
383 const FiniteElement<dim> &finite_element);
395 const bool do_pressure_rhs_compatibility_modification);
422 const bool field_is_discontinuous);
510 const unsigned int face);
519 const unsigned int face,
520 const unsigned int sub_face);
std::vector< SymmetricTensor< 2, dim > > old_strain_rates
std::vector< Tensor< 1, dim > > old_field_grads
std::vector< types::global_dof_index > local_dof_indices
std::vector< Tensor< 1, dim > > old_velocity_values
const bool rebuild_newton_stokes_matrix
std::vector< double > old_temperature_values
std::vector< Tensor< 1, dim > > phi_u
std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_system
std::vector< double > current_temperature_values
std::vector< double > current_velocity_divergences
std::vector< std::vector< std::unique_ptr< Assemblers::Interface< dim > > > > advection_system_on_interior_face
Properties stokes_preconditioner_assembler_properties
MaterialModel::MaterialModelInputs< dim > face_material_model_inputs
FullMatrix< double > local_matrix
std::vector< Tensor< 1, dim > > face_mesh_velocity_values
bool need_face_finite_element_evaluation
std::vector< Tensor< 1, dim > > grad_phi_field
std::vector< std::vector< std::unique_ptr< Assemblers::Interface< dim > > > > advection_system
std::vector< double > old_old_field_values
bool need_face_material_model_data
UpdateFlags needed_update_flags
std::vector< Tensor< 1, dim > > face_grad_phi_field
std::vector< double > phi_p_c
MaterialModel::MaterialModelOutputs< dim > material_model_outputs
FEValues< dim > finite_element_values
MaterialModel::MaterialModelInputs< dim > material_model_inputs
HeatingModel::HeatingModelOutputs face_heating_model_outputs
MaterialModel::MaterialModelOutputs< dim > neighbor_face_material_model_outputs
std::vector< Tensor< 1, dim > > mesh_velocity_values
const Simulator< dim >::AdvectionField * advection_field
std::vector< Tensor< 1, dim > > old_pressure_gradients
std::vector< SymmetricTensor< 2, dim > > old_old_strain_rates
std::vector< double > old_pressure
std::vector< double > neighbor_face_phi_field
std::vector< Tensor< 1, dim > > old_old_field_grads
std::vector< double > old_field_laplacians
const bool rebuild_stokes_matrix
std::vector< double > phi_p
unsigned int n_interface_matrices(const ReferenceCell &reference_cell)
std::vector< Tensor< 1, dim > > temperature_gradients
std::vector< SymmetricTensor< 2, dim > > current_strain_rates
ScratchBase(const ScratchBase &scratch)
std::vector< bool > assembled_matrices
unsigned int nth_interface_matrix(const ReferenceCell &reference_cell, const unsigned int face, const unsigned int sub_face)
std::vector< double > old_old_pressure
double artificial_viscosity
Vector< double > local_rhs
std::vector< Tensor< 1, dim > > current_velocity_values
std::vector< unsigned int > dof_component_indices
std::vector< Properties > advection_system_assembler_properties
MaterialModel::MaterialModelOutputs< dim > face_material_model_outputs
HeatingModel::HeatingModelOutputs neighbor_face_heating_model_outputs
std::vector< Tensor< 1, dim > > neighbor_face_grad_phi_field
std::vector< double > reference_densities
std::unique_ptr< FEFaceValues< dim > > neighbor_face_finite_element_values
std::vector< double > face_phi_field
FEValues< dim > finite_element_values
std::vector< std::vector< types::global_dof_index > > neighbor_dof_indices
std::vector< FullMatrix< double > > local_matrices_int_ext
std::vector< Tensor< 1, dim > > old_old_velocity_values
std::vector< FullMatrix< double > > local_matrices_ext_int
std::vector< std::vector< double > > old_composition_values
std::vector< Tensor< 1, dim > > grad_phi_p
std::vector< double > old_old_field_laplacians
std::vector< SymmetricTensor< 2, dim > > grads_phi_u
Properties stokes_system_assembler_on_boundary_face_properties
DoFHandler< dim >::active_cell_iterator cell
std::vector< std::vector< double > > old_old_composition_values
std::vector< double > laplacian_phi_field
MaterialModel::MaterialModelOutputs< dim > face_material_model_outputs
std::vector< Tensor< 1, dim > > old_old_pressure_gradients
std::vector< double > div_phi_u
std::vector< types::global_dof_index > local_dof_indices
std::vector< Tensor< 1, dim > > velocity_values
HeatingModel::HeatingModelOutputs heating_model_outputs
std::vector< Properties > advection_system_assembler_on_face_properties
std::vector< double > reference_densities_depth_derivative
MaterialModel::MaterialModelInputs< dim > neighbor_face_material_model_inputs
std::unique_ptr< FESubfaceValues< dim > > subface_finite_element_values
std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_system_on_boundary_face
std::vector< Tensor< 1, dim > > face_current_velocity_values
std::vector< double > old_old_temperature_values
std::vector< double > phi_field
std::vector< FullMatrix< double > > local_matrices_ext_ext
std::vector< Tensor< 1, dim > > phi_u
std::vector< std::vector< std::unique_ptr< Assemblers::Interface< dim > > > > advection_system_on_boundary_face
MaterialModel::MaterialModelInputs< dim > face_material_model_inputs
MaterialModel::MaterialModelInputs< dim > material_model_inputs
std::vector< double > velocity_divergence
FEFaceValues< dim > face_finite_element_values
std::vector< std::vector< double > > current_composition_values
Vector< double > local_pressure_shape_function_integrals
std::unique_ptr< FEFaceValues< dim > > face_finite_element_values
std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_preconditioner
MaterialModel::MaterialModelOutputs< dim > material_model_outputs
Vector< double > local_inverse_lumped_mass_matrix
Properties stokes_system_assembler_properties
std::vector< types::global_dof_index > local_dof_indices
Vector< double > local_rhs
std::vector< double > old_field_values
FullMatrix< double > local_matrix
std::vector< types::global_dof_index > local_dof_indices
virtual ~ScratchBase()=default