-
Notifications
You must be signed in to change notification settings - Fork 239
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6151 from bangerth/heat-flux
Document the heat flux plugin system.
- Loading branch information
Showing
4 changed files
with
53 additions
and
8 deletions.
There are no files selected for viewing
34 changes: 34 additions & 0 deletions
34
doc/sphinx/user/extending/plugin-types/boundary-heat-flux.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
|
||
# 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters