22 #ifndef _aspect_melt_h 23 #define _aspect_melt_h 33 namespace MaterialModel
69 const FEValuesBase<dim> &fe_values,
86 const unsigned int n_comp);
124 const FullMatrix<double> &projection_matrix,
125 const FullMatrix<double> &expansion_matrix)
override;
158 std::vector<double> &melt_fractions)
const = 0;
167 template <
typename ModelType>
169 bool is_melt_fraction_model (
const ModelType &model_object);
176 template <
typename ModelType>
179 as_melt_fraction_model (
const ModelType &model_object);
185 template <
typename ModelType>
196 template <
typename ModelType>
201 Assert (is_melt_fraction_model(model_object) ==
true,
202 ExcMessage (
"This function can only be called for model objects " 203 "whose types are derived from MeltFractionModel."));
221 virtual double reference_darcy_coefficient ()
const = 0;
243 const bool consider_is_melt_cell)
const;
381 void parse_parameters (ParameterHandler &prm);
470 void initialize_simulator (
const Simulator<dim> &simulator_object)
override;
499 void apply_free_surface_stabilization_with_melt (
const double free_surface_theta,
500 const typename DoFHandler<dim>::active_cell_iterator &cell,
510 void add_current_constraints(AffineConstraints<double> &constraints);
517 bool is_melt_cell(
const typename DoFHandler<dim>::active_cell_iterator &cell)
const;
526 double limited_darcy_coefficient(
const double K_D,
527 const bool is_melt_cell)
const;
533 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
void declare_parameters(ParameterHandler &prm)
static const MeltFractionModel< dim > & as_melt_fraction_model(const ModelType &model_object)
std::vector< Tensor< 1, dim > > fluid_density_gradients
::TrilinosWrappers::BlockSparseMatrix BlockSparseMatrix
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
static bool is_melt_fraction_model(const ModelType &model_object)
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