22 #ifndef _aspect_melt_h 23 #define _aspect_melt_h 35 namespace MaterialModel
71 const FEValuesBase<dim> &fe_values,
88 const unsigned int n_comp);
126 const FullMatrix<double> &projection_matrix,
127 const FullMatrix<double> &expansion_matrix)
override;
160 std::vector<double> &melt_fractions)
const = 0;
169 template <
typename ModelType>
171 bool is_melt_fraction_model (
const ModelType &model_object);
178 template <
typename ModelType>
181 as_melt_fraction_model (
const ModelType &model_object);
187 template <
typename ModelType>
198 template <
typename ModelType>
203 Assert (is_melt_fraction_model(model_object) ==
true,
204 ExcMessage (
"This function can only be called for model objects " 205 "whose types are derived from MeltFractionModel."));
223 virtual double reference_darcy_coefficient ()
const = 0;
245 const bool consider_is_melt_cell)
const;
383 void parse_parameters (ParameterHandler &prm);
472 void initialize_simulator (
const Simulator<dim> &simulator_object)
override;
501 void apply_free_surface_stabilization_with_melt (
const double free_surface_theta,
502 const typename DoFHandler<dim>::active_cell_iterator &cell,
512 void add_current_constraints(AffineConstraints<double> &constraints);
519 bool is_melt_cell(
const typename DoFHandler<dim>::active_cell_iterator &cell)
const;
528 double limited_darcy_coefficient(
const double K_D,
529 const bool is_melt_cell)
const;
535 get_boundary_fluid_pressure ()
const;
bool average_melt_velocity
::TrilinosWrappers::MPI::BlockVector BlockVector
std::vector< bool > is_melt_cell_vector
Melt::Parameters< dim > melt_parameters
std::vector< Tensor< 1, dim > > fluid_density_gradients
::TrilinosWrappers::BlockSparseMatrix BlockSparseMatrix
void declare_parameters(ParameterHandler &prm)
bool heat_advection_by_melt
std::vector< double > fluid_viscosities
std::vector< double > compaction_viscosities
std::vector< double > permeabilities
double melt_scaling_factor_threshold
const std::unique_ptr< aspect::BoundaryFluidPressure::Interface< dim > > boundary_fluid_pressure
void average(const AveragingOperation operation, const typename DoFHandler< dim >::active_cell_iterator &cell, const Quadrature< dim > &quadrature_formula, const Mapping< dim > &mapping, const MaterialProperties::Property &requested_properties, MaterialModelOutputs< dim > &values_out)
std::vector< double > fluid_densities
bool use_discontinuous_p_c
AffineConstraints< double > current_constraints