/* Copyright (C) 2011, 2012 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 . */ /* $Id: box.h 853 2012-03-24 21:52:36Z bangerth $ */ #ifndef __aspect__boundary_temperature_convbox2d_h #define __aspect__boundary_temperature_convbox2d_h #include namespace aspect { namespace BoundaryTemperature { /** * A class that implements a temperature boundary condition for a box * geometry. * * @ingroup BoundaryTemperatures */ template class ConvBox2D : public Interface { public: /** * Return the temperature that is to hold at a particular location on the * boundary of the domain. This function returns constant temperatures * at the left and right boundaries. * * @param geometry_model The geometry model that describes the domain. This may * be used to determine whether the boundary temperature model is implemented * for this geometry. * @param boundary_indicator The boundary indicator of the part of the boundary * of the domain on which the point is located at which we are requesting the * temperature. * @param location The location of the point at which we ask for the temperature. **/ virtual double temperature (const GeometryModel::Interface &geometry_model, const unsigned int boundary_indicator, const Point &location) const; /** * Return the minimal the temperature on that part of the boundary * on which Dirichlet conditions are posed. * * This value is used in computing dimensionless numbers such as the * Nusselt number indicating heat flux. */ virtual double minimal_temperature () const; /** * Return the maximal the temperature on that part of the boundary * on which Dirichlet conditions are posed. * * This value is used in computing dimensionless numbers such as the * Nusselt number indicating heat flux. */ virtual double maximal_temperature () const; /** * Declare the parameters this class takes through input files. * This class declares the inner and outer boundary temperatures. */ static void declare_parameters (ParameterHandler &prm); /** * Read the parameters this class declares from the parameter * file. */ virtual void parse_parameters (ParameterHandler &prm); private: /** * Temperatures at the inner and outer boundaries. */ double top_temperature; double bottom_temperature; }; } } #endif