21 #ifndef _aspect_simulator_assemblers_interface_h
22 #define _aspect_simulator_assemblers_interface_h
35 struct AdvectionField;
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);
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,
162 const bool use_bfbt);
171 const unsigned face_number_ref);
225 const unsigned int n_compositional_fields,
395 const bool do_pressure_rhs_compatibility_modification);
422 const bool field_is_discontinuous);
511 const unsigned int face);
521 const unsigned int face,
522 const unsigned int sub_face);
virtual std::vector< double > advection_prefactors(internal::Assembly::Scratch::ScratchBase< dim > &scratch_base) const
virtual std::vector< double > diffusion_prefactors(internal::Assembly::Scratch::ScratchBase< dim > &scratch_base) const
virtual ~AdvectionStabilizationInterface()
virtual std::vector< double > compute_residual(internal::Assembly::Scratch::ScratchBase< dim > &) const
virtual void execute(internal::Assembly::Scratch::ScratchBase< dim > &scratch, internal::Assembly::CopyData::CopyDataBase< dim > &data) const =0
virtual void create_additional_material_model_outputs(MaterialModel::MaterialModelOutputs< dim > &) const
std::vector< Properties > advection_system_assembler_on_face_properties
Properties stokes_preconditioner_assembler_properties
std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_system
std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_preconditioner
std::vector< std::vector< std::unique_ptr< Assemblers::Interface< dim > > > > advection_system_on_boundary_face
Properties stokes_system_assembler_on_boundary_face_properties
std::vector< Properties > advection_system_assembler_properties
std::vector< std::vector< std::unique_ptr< Assemblers::Interface< dim > > > > advection_system
std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_system_on_boundary_face
Properties stokes_system_assembler_properties
std::vector< std::vector< std::unique_ptr< Assemblers::Interface< dim > > > > advection_system_on_interior_face
unsigned int n_interface_matrices(const ReferenceCell< dim > &reference_cell)
unsigned int nth_interface_matrix(const ReferenceCell< dim > &reference_cell, const unsigned int face)
UpdateFlags needed_update_flags
bool need_face_material_model_data
bool need_face_finite_element_evaluation
std::vector< types::global_dof_index > local_dof_indices
FullMatrix< double > local_matrix
std::vector< FullMatrix< double > > local_matrices_ext_int
Vector< double > local_rhs
std::vector< FullMatrix< double > > local_matrices_ext_ext
std::vector< std::vector< types::global_dof_index > > neighbor_dof_indices
AdvectionSystem(const FiniteElement< dim > &finite_element, const bool field_is_discontinuous)
std::vector< FullMatrix< double > > local_matrices_int_ext
std::vector< bool > assembled_matrices
virtual ~CopyDataBase()=default
void extract_stokes_dof_indices(const std::vector< types::global_dof_index > &all_dof_indices, const Introspection< dim > &introspection, const FiniteElement< dim > &finite_element)
Vector< double > local_inverse_lumped_mass_matrix
StokesPreconditioner(const StokesPreconditioner &data)
FullMatrix< double > local_matrix
~StokesPreconditioner() override=default
StokesPreconditioner(const unsigned int stokes_dofs_per_cell)
StokesPreconditioner< dim > & operator=(const StokesPreconditioner< dim > &data)=default
std::vector< types::global_dof_index > local_dof_indices
StokesSystem< dim > & operator=(const StokesSystem< dim > &data)=default
Vector< double > local_rhs
StokesSystem(const StokesSystem< dim > &data)
Vector< double > local_pressure_shape_function_integrals
StokesSystem(const unsigned int stokes_dofs_per_cell, const bool do_pressure_rhs_compatibility_modification)
~StokesSystem() override=default
MaterialModel::MaterialModelOutputs< dim > face_material_model_outputs
std::vector< double > laplacian_phi_field
std::vector< SymmetricTensor< 2, dim > > old_old_strain_rates
std::vector< Tensor< 1, dim > > face_grad_phi_field
std::unique_ptr< FEFaceValues< dim > > neighbor_face_finite_element_values
std::vector< double > current_velocity_divergences
const AdvectionField * advection_field
AdvectionSystem(const FiniteElement< dim > &finite_element, const FiniteElement< dim > &advection_element, const Mapping< dim > &mapping, const Quadrature< dim > &quadrature, const Quadrature< dim-1 > &face_quadrature, const UpdateFlags update_flags, const UpdateFlags face_update_flags, const unsigned int n_compositional_fields, const AdvectionField &field)
MaterialModel::MaterialModelInputs< dim > neighbor_face_material_model_inputs
std::vector< double > old_old_field_laplacians
std::vector< std::vector< double > > old_old_composition_values
std::vector< Tensor< 1, dim > > mesh_velocity_values
std::vector< double > face_phi_field
void reinit(const typename DoFHandler< dim >::active_cell_iterator &cell_ref)
std::vector< Tensor< 1, dim > > old_old_pressure_gradients
std::vector< std::vector< double > > old_composition_values
std::vector< double > old_old_temperature_values
std::vector< double > old_field_values
std::vector< Tensor< 1, dim > > face_mesh_velocity_values
std::vector< double > old_pressure
std::vector< Tensor< 1, dim > > face_current_velocity_values
AdvectionSystem(const AdvectionSystem &scratch)
std::vector< Tensor< 1, dim > > old_pressure_gradients
std::vector< double > neighbor_face_phi_field
MaterialModel::MaterialModelInputs< dim > material_model_inputs
HeatingModel::HeatingModelOutputs face_heating_model_outputs
std::unique_ptr< FESubfaceValues< dim > > subface_finite_element_values
MaterialModel::MaterialModelInputs< dim > face_material_model_inputs
std::vector< double > old_field_laplacians
std::unique_ptr< FEFaceValues< dim > > face_finite_element_values
HeatingModel::HeatingModelOutputs heating_model_outputs
std::vector< double > phi_field
MaterialModel::MaterialModelOutputs< dim > neighbor_face_material_model_outputs
std::vector< Tensor< 1, dim > > old_old_field_grads
std::vector< Tensor< 1, dim > > neighbor_face_grad_phi_field
std::vector< Tensor< 1, dim > > current_velocity_values
std::vector< Tensor< 1, dim > > old_old_velocity_values
double artificial_viscosity
std::vector< Tensor< 1, dim > > old_velocity_values
std::vector< std::vector< double > > current_composition_values
MaterialModel::MaterialModelOutputs< dim > material_model_outputs
std::vector< double > old_temperature_values
std::vector< SymmetricTensor< 2, dim > > old_strain_rates
HeatingModel::HeatingModelOutputs neighbor_face_heating_model_outputs
std::vector< double > current_temperature_values
std::vector< Tensor< 1, dim > > old_field_grads
std::vector< Tensor< 1, dim > > grad_phi_field
std::vector< double > old_old_pressure
std::vector< double > old_old_field_values
std::vector< types::global_dof_index > local_dof_indices
FEValues< dim > finite_element_values
std::vector< SymmetricTensor< 2, dim > > current_strain_rates
DoFHandler< dim >::active_cell_iterator cell
ScratchBase(const ScratchBase &scratch)
virtual ~ScratchBase()=default
std::vector< unsigned int > dof_component_indices
std::vector< SymmetricTensor< 2, dim > > grads_phi_u
StokesPreconditioner(const FiniteElement< dim > &finite_element, const Quadrature< dim > &quadrature, const Mapping< dim > &mapping, const UpdateFlags update_flags, const unsigned int n_compositional_fields, const unsigned int stokes_dofs_per_cell, const bool add_compaction_pressure, const bool rebuild_matrix, const bool use_bfbt)
std::vector< Tensor< 1, dim > > phi_u
void reinit(const typename DoFHandler< dim >::active_cell_iterator &cell_ref)
std::vector< double > phi_p
const bool rebuild_stokes_matrix
~StokesPreconditioner() override
FEValues< dim > finite_element_values
std::vector< double > phi_p_c
std::vector< Tensor< 1, dim > > grad_phi_p
StokesPreconditioner(const StokesPreconditioner &scratch)
MaterialModel::MaterialModelInputs< dim > material_model_inputs
std::vector< double > div_phi_u
std::vector< types::global_dof_index > local_dof_indices
MaterialModel::MaterialModelOutputs< dim > material_model_outputs
std::vector< double > reference_densities
std::vector< double > reference_densities_depth_derivative
StokesSystem(const FiniteElement< dim > &finite_element, const Mapping< dim > &mapping, const Quadrature< dim > &quadrature, const Quadrature< dim-1 > &face_quadrature, const UpdateFlags update_flags, const UpdateFlags face_update_flags, const unsigned int n_compositional_fields, const unsigned int stokes_dofs_per_cell, const bool add_compaction_pressure, const bool use_reference_density_profile, const bool rebuild_stokes_matrix, const bool rebuild_newton_stokes_matrix, const bool use_bfbt)
std::vector< Tensor< 1, dim > > phi_u
std::vector< Tensor< 1, dim > > velocity_values
void reinit(const typename DoFHandler< dim >::active_cell_iterator &cell_ref, const unsigned face_number_ref)
FEFaceValues< dim > face_finite_element_values
StokesSystem(const StokesSystem< dim > &scratch)
MaterialModel::MaterialModelOutputs< dim > face_material_model_outputs
std::vector< double > velocity_divergence
const bool rebuild_newton_stokes_matrix
MaterialModel::MaterialModelInputs< dim > face_material_model_inputs
std::vector< Tensor< 1, dim > > temperature_gradients