21 #ifndef _aspect_simulator_assemblers_interface_h 22 #define _aspect_simulator_assemblers_interface_h 28 #include <deal.II/fe/fe_values.h> 37 struct AdvectionField;
64 face_number(numbers::invalid_unsigned_int)
70 face_number(scratch.face_number)
78 typename DoFHandler<dim>::active_cell_iterator
cell;
97 const Quadrature<dim> &quadrature,
98 const Mapping<dim> &mapping,
99 const UpdateFlags update_flags,
100 const unsigned int n_compositional_fields,
101 const unsigned int stokes_dofs_per_cell,
102 const bool add_compaction_pressure,
103 const bool rebuild_matrix,
104 const bool use_bfbt);
105 StokesPreconditioner (
const StokesPreconditioner &scratch);
107 ~StokesPreconditioner ()
override;
111 void reinit (
const typename DoFHandler<dim>::active_cell_iterator &cell_ref);
153 const Mapping<dim> &mapping,
154 const Quadrature<dim> &quadrature,
155 const Quadrature<dim-1> &face_quadrature,
156 const UpdateFlags update_flags,
157 const UpdateFlags face_update_flags,
158 const unsigned int n_compositional_fields,
159 const unsigned int stokes_dofs_per_cell,
160 const bool add_compaction_pressure,
161 const bool use_reference_density_profile,
162 const bool rebuild_stokes_matrix,
163 const bool rebuild_newton_stokes_matrix,
164 const bool use_bfbt);
172 void reinit (
const typename DoFHandler<dim>::active_cell_iterator &cell_ref,
173 const unsigned face_number_ref);
221 const FiniteElement<dim> &advection_element,
222 const Mapping<dim> &mapping,
223 const Quadrature<dim> &quadrature,
224 const Quadrature<dim-1> &face_quadrature,
225 const UpdateFlags update_flags,
226 const UpdateFlags face_update_flags,
227 const unsigned int n_compositional_fields,
229 AdvectionSystem (
const AdvectionSystem &scratch);
233 void reinit (
const typename DoFHandler<dim>::active_cell_iterator &cell_ref);
369 StokesPreconditioner (
const StokesPreconditioner &data);
371 ~StokesPreconditioner ()
override =
default;
383 void extract_stokes_dof_indices(
const std::vector<types::global_dof_index> &all_dof_indices,
385 const FiniteElement<dim> &finite_element);
397 const bool do_pressure_rhs_compatibility_modification);
424 const bool field_is_discontinuous);
512 const unsigned int face);
521 const unsigned int face,
522 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