Skip to content

Commit

Permalink
Merge pull request #1700 from alarshi/remove-interface-compatibility-…
Browse files Browse the repository at this point in the history
…solkz

Removed interface compatibility.
  • Loading branch information
gassmoeller committed May 19, 2017
2 parents ec8bf47 + 3aa1ef3 commit b8a5624
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 60 deletions.
21 changes: 8 additions & 13 deletions benchmarks/solkz/compositional_fields/solkz_compositional_fields.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,16 @@ namespace aspect
class SolKzCompositionalMaterial : public SolKzMaterial<dim>
{
public:
virtual double density(const double temperature,
const double pressure,
const std::vector<double> &composition,
const Point<dim> &position) const
virtual void evaluate(const MaterialModel::MaterialModelInputs<dim> &in,
MaterialModel::MaterialModelOutputs<dim> &out) const
{
return composition[0];
}
SolKzMaterial<dim>::evaluate(in, out);

virtual double viscosity(const double temperature,
const double pressure,
const std::vector<double> &composition,
const SymmetricTensor<2, dim> &strain_rate,
const Point<dim> &position) const
{
return composition[1];
for (unsigned int i=0; i < in.position.size(); ++i)
{
out.densities[i] = in.composition[i][0];
out.viscosities[i] = in.composition[i][1];
}
}
};
}
Expand Down
61 changes: 14 additions & 47 deletions benchmarks/solkz/solkz.h
Original file line number Diff line number Diff line change
Expand Up @@ -648,65 +648,32 @@ namespace aspect


template<int dim>
class SolKzMaterial : public MaterialModel::InterfaceCompatibility<dim>
class SolKzMaterial : public MaterialModel::Interface<dim>
{
public:
/**
* @name Physical parameters used in the basic equations
* @{
*/

virtual double viscosity(const double temperature,
const double pressure,
const std::vector<double> &compositional_fields,
const SymmetricTensor<2, dim> &strain_rate,
const Point<dim> &position) const
{
// defined as given in the Duretz et al. paper
static const double B = 0.5 * std::log(1e6);
return std::exp(2 * B * position[1]);
}

virtual double density(const double temperature,
const double pressure,
const std::vector<double> &compositional_fields,
const Point<dim> &position) const
virtual void evaluate(const MaterialModel::MaterialModelInputs<dim> &in,
MaterialModel::MaterialModelOutputs<dim> &out) const
{
// defined as given in the paper
return -std::sin(2 * position[1]) * std::cos(3 * numbers::PI * position[0]);
}
for (unsigned int i=0; i < in.position.size(); ++i)
{

virtual double compressibility(const double temperature,
const double pressure,
const std::vector<double> &compositional_fields,
const Point<dim> &position) const
{
return 0.0;
}
const Point<dim> &pos = in.position[i];

virtual double specific_heat(const double temperature,
const double pressure,
const std::vector<double> &compositional_fields,
const Point<dim> &position) const
{
return 0;
}
static const double B = 0.5 * std::log(1e6);
out.viscosities[i] = std::exp(2 * B * pos[1]);

virtual double thermal_expansion_coefficient(const double temperature,
const double pressure,
const std::vector<double> &compositional_fields,
const Point<dim> &position) const
{
return 0;
out.densities[i] = -std::sin(2 * pos[1]) * std::cos(3 * numbers::PI * pos[0]);
out.compressibilities[i] = 0;
out.specific_heat[i] = 0;
out.thermal_expansion_coefficients[i] = 0;
out.thermal_conductivities[i] = 0.0;
}
}

virtual double thermal_conductivity(const double temperature,
const double pressure,
const std::vector<double> &compositional_fields,
const Point<dim> &position) const
{
return 0;
}
/**
* @}
*/
Expand Down

0 comments on commit b8a5624

Please sign in to comment.