Radiative transfer
The radiative transfer model runs a single solver using the RtSolver interface, where the underlying solver can derived from any subclass of RtSolver. This module is designed to show how to set up and run RtSolver, and the code was not written to solve any particular problem. Selecting between different types of solvers must be done at compile time.
Tip
The source code is located in $DISCHARGE_HOME/Physics/RadiativeTransfer.
The model consists of the following implementation files:
CD_RadiativeTransferStepper.Hwhich implements TimeStepper.CD_RadiativeTransferSpecies.Hwhich implements the necessary transport conditions through RtSpecies.
Note
The current radiative transfer module does not incorporate solver-based adaptive mesh refinement, so refinement is restricted to refinement and coarsening through the Driver interface.
Basic problem
Currently, RadiativeTransferStepper simply instantiates a solver and advances the solution using a synthetic source given by
where the source strength \(\eta_0\), source radius \(R\), and source center \(\mathbf{x}_0\) are set by the user. Similarly, the user can set the photon absorption length, see Solver configuration.
Solver configuration
The RadiativeTransferStepper class comes with user-configurable input options that can be adjusted at runtime.
These configuration options are given below.
# ====================================================================================================
# RadiativeTransferStepper class options
# ====================================================================================================
RadiativeTransferStepper.verbosity = -1 ## Verbosity
RadiativeTransferStepper.realm = primal ## Realm
RadiativeTransferStepper.kappa = 1.0 ## Inverse absorption coefficient
RadiativeTransferStepper.dt = 1.E-10 ## Time step
RadiativeTransferStepper.blob_amplitude = 1.0 ## Blob amplitude
RadiativeTransferStepper.blob_radius = 0.1 ## Blob radius
RadiativeTransferStepper.blob_center = 0 0 ## Blob center
Setting up a new problem
To set up a new problem, using the Python setup tools in $DISCHARGE_HOME/Physics/RadiativeTransfer is the simplest way.
A full description is available in the README.md contained in the folder:
# Physics/RtPhysics
This physics module solves for a radiative transfer problem. This module contains files for setting up the initial conditions and integrators. It does not feature adaptive mesh refinement.
The source files consist of the following:
* **CD_RtPhysicsSpecies.H/cpp** Implementation of RtSpecies, for setting up a radiative transfer equation.
* **CD_RtPhysicsStepper.H/cpp** Implementation of TimeStepper, for advancing the radiative transfer equation, either stationary or transient.
## Setting up a new application
To set up a new problem, use the Python script. For example:
```shell
python setup.py -base_dir=/home/foo/MyApplications -app_name=MyRadiativeTransfer -geometry=Vessel
```
To install within chombo-discharge:
```shell
python setup.py -base_dir=$DISCHARGE_HOME/MyApplications -app_name=MyRadiativeTransfer -geometry=Vessel
```
The application will then be installed to $DISCHARGE_HOME/myApplications/myRtPhysics.
The user will need to modify the geometry and set the initial conditions through the inputs file.
Note that the user can choose between either using discrete or continuum models with the -RtSolver flag.
## Modifying the application
By default, this application specifies a Gaussian source for the photons.
Users are free to modify this application, e.g. adding other initial conditions.
To see available setup options, use
python setup.py --help
Tip
To set up a new problem using either a Monte-Carlo or diffusion-based radiative transfer solver, pass in the flag -RtSolver to set up the problem using the desired solver.