Boundary heat flux

Boundary heat flux#

In contrast to prescribing the actual temperature at a boundary, it is also possible to prescribe the heat flux across a boundary. A number of heat flux models are already implemented, but if you want to implement a new boundary heat flux model, you need to overload the aspect::BoundaryHeatFlux::Interface class and use the ASPECT_REGISTER_BOUNDARY_HEAT_FLUX_MODEL macro to register your new class. The implementation of the new class should be in namespace aspect::BoundaryTemperature.

The Interface class that you need to overload provides the prescribed heat flux at a given set of points via the heat_flux() function. The function receives information about material parameters at these points as well. For historical reasons, the function is asked to provide the heat flux as a vector, even though the place where the heat flux is used only uses the component of this vector that is normal to the boundary (which it computes by taking the dot product between the returned vector and the normal vector). Because there are situations where all you can do is compute the normal heat flux as a scalar, the heat_flux() function also receives the normal vector as an input argument. As a consequence, one way for the function to compute the required heat flux vector is to compute the scalar heat flux and multiply it by the normal vector.

Finally, the function also receives the boundary indicator of the particular piece of boundary on which the point is located, as a hint in determining where this point may be located; this may, for example, be used to determine if a point is on the inner or outer boundary of a spherical shell. Models may also need to query the geometry model (via the SimulatorAccess class) to understand what a specific boundary indicator is supposed to mean – e.g., if the given boundary indicator corresponds to an inner or outer surface of a shell geometry.