[cig-commits] commit 1875 by dannberg to /var/svn/dealii/aspect
dealii.demon at gmail.com
dealii.demon at gmail.com
Wed Sep 11 07:23:00 PDT 2013
Revision 1875
add reactions between compositional fields
A branches/j-dannberg/include/aspect/material_model/composition_reaction.h
U branches/j-dannberg/include/aspect/material_model/interface.h
U branches/j-dannberg/source/adiabatic_conditions.cc
U branches/j-dannberg/source/initial_conditions/adiabatic.cc
A branches/j-dannberg/source/material_model/composition_reaction.cc
U branches/j-dannberg/source/material_model/interface.cc
U branches/j-dannberg/source/mesh_refinement/density.cc
U branches/j-dannberg/source/mesh_refinement/thermal_energy_density.cc
U branches/j-dannberg/source/postprocess/heat_flux_statistics.cc
U branches/j-dannberg/source/postprocess/table_heat_flux_statistics.cc
U branches/j-dannberg/source/postprocess/visualization/density.cc
U branches/j-dannberg/source/postprocess/visualization/friction_heating.cc
U branches/j-dannberg/source/postprocess/visualization/specific_heat.cc
U branches/j-dannberg/source/postprocess/visualization/surface_topography.cc
U branches/j-dannberg/source/postprocess/visualization/thermal_expansivity.cc
U branches/j-dannberg/source/postprocess/visualization/viscosity.cc
U branches/j-dannberg/source/simulator/assembly.cc
U branches/j-dannberg/source/simulator/helper_functions.cc
http://www.dealii.org/websvn/revision.php?repname=Aspect+Repository&path=%2F&rev=1875&peg=1875
Diff:
Added: branches/j-dannberg/include/aspect/material_model/composition_reaction.h
===================================================================
--- branches/j-dannberg/include/aspect/material_model/composition_reaction.h (rev 0)
+++ branches/j-dannberg/include/aspect/material_model/composition_reaction.h 2013-09-11 14:21:08 UTC (rev 1875)
@@ -0,0 +1,250 @@
+/*
+ Copyright (C) 2013 by the authors of the ASPECT code.
+
+ This file is part of ASPECT.
+
+ ASPECT is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ ASPECT is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ASPECT; see the file doc/COPYING. If not see
+ <http://www.gnu.org/licenses/>.
+*/
+/* $Id: simple.h 1313 2012-10-23 11:47:02Z gassmoeller $ */
+
+
+#ifndef __aspect__model_composition_reaction_h
+#define __aspect__model_composition_reaction_h
+
+#include <aspect/material_model/interface.h>
+#include <aspect/simulator_access.h>
+
+namespace aspect
+{
+ namespace MaterialModel
+ {
+ using namespace dealii;
+
+ /**
+ * A material model that consists of globally constant values for all
+ * material parameters except that the density decays linearly with the
+ * temperature.
+ *
+ * The model is considered incompressible, following the definition
+ * described in Interface::is_compressible. This is essentially
+ * the material model used in the step-32 tutorial program.
+ *
+ * @ingroup MaterialModels
+ */
+ template <int dim>
+ class CompositionReaction : public MaterialModel::InterfaceCompatibility<dim>, public ::aspect::SimulatorAccess<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;
+
+ virtual double density (const double temperature,
+ const double pressure,
+ const std::vector<double> &compositional_fields,
+ const Point<dim> &position) const;
+
+ virtual double compressibility (const double temperature,
+ const double pressure,
+ const std::vector<double> &compositional_fields,
+ const Point<dim> &position) const;
+
+ virtual double specific_heat (const double temperature,
+ const double pressure,
+ const std::vector<double> &compositional_fields,
+ const Point<dim> &position) const;
+
+ virtual double thermal_expansion_coefficient (const double temperature,
+ const double pressure,
+ const std::vector<double> &compositional_fields,
+ const Point<dim> &position) const;
+
+ virtual double thermal_conductivity (const double temperature,
+ const double pressure,
+ const std::vector<double> &compositional_fields,
+ const Point<dim> &position) const;
+
+ virtual double entropy_derivative (const double temperature,
+ const double pressure,
+ const std::vector<double> &compositional_fields,
+ const Point<dim> &position,
+ const NonlinearDependence::Dependence dependence) const;
+
+ virtual double reaction_term (const double temperature,
+ const double pressure,
+ const std::vector<double> &compositional_fields,
+ const Point<dim> &position,
+ const unsigned int compositional_variable) const;
+ /**
+ * @}
+ */
+
+ /**
+ * @name Qualitative properties one can ask a material model
+ * @{
+ */
+
+ /**
+ * Return true if the viscosity() function returns something that
+ * may depend on the variable identifies by the argument.
+ */
+ virtual bool
+ viscosity_depends_on (const NonlinearDependence::Dependence dependence) const;
+
+ /**
+ * Return true if the density() function returns something that
+ * may depend on the variable identifies by the argument.
+ */
+ virtual bool
+ density_depends_on (const NonlinearDependence::Dependence dependence) const;
+
+ /**
+ * Return true if the compressibility() function returns something that
+ * may depend on the variable identifies by the argument.
+ *
+ * This function must return false for all possible arguments if the
+ * is_compressible() function returns false.
+ */
+ virtual bool
+ compressibility_depends_on (const NonlinearDependence::Dependence dependence) const;
+
+ /**
+ * Return true if the specific_heat() function returns something that
+ * may depend on the variable identifies by the argument.
+ */
+ virtual bool
+ specific_heat_depends_on (const NonlinearDependence::Dependence dependence) const;
+
+ /**
+ * Return true if the thermal_conductivity() function returns something that
+ * may depend on the variable identifies by the argument.
+ */
+ virtual bool
+ thermal_conductivity_depends_on (const NonlinearDependence::Dependence dependence) const;
+
+ /**
+ * Return whether the model is compressible or not. Incompressibility
+ * does not necessarily imply that the density is constant; rather, it
+ * may still depend on temperature or pressure. In the current
+ * context, compressibility means whether we should solve the contuity
+ * equation as $
abla
More information about the CIG-COMMITS
mailing list