/*
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