![]() |
The Open FUSION Toolkit 1.0.0-6f445ef
An open-source framework for fusion and plasma science and engineering
|
Tracer implementation using LSODE as the ODE solver.

Public Member Functions | |
| procedure(tracer_step), deferred | delete (self) |
| Destroy tracer and deallocate internal storage. | |
| procedure | delete (self) |
| Destroy LSODE tracer and deallocate internal storage. | |
| procedure(tracer_setup), deferred | setup (self, y, cell) |
| Setup tracer and initialize ODE solver. | |
| procedure | setup (self, y, cell) |
| Initialize tracer using LSODE. | |
| procedure(tracer_step), deferred | step (self) |
| Take one step of the ODE solver. | |
| procedure | step (self) |
| Advance the tracer one step using LSODE. | |
Public Attributes | |
| class(bfem_interp), pointer | b => NULL() |
| Interpolation object for field evaluation. | |
| integer(i4) | cell = 0 |
| Current cell containing tracer. | |
| real(r8) | dt = 0.d0 |
| Timestep (for fixed step methods) | |
| real(r8), dimension(:), pointer | dv => NULL() |
| Change in ODE solution over last step. | |
| real(r8), dimension(2) | dy = 0.d0 |
| Change in position in real coordinates (eg. X,Y) | |
| real(r8), dimension(3) | f = 0.d0 |
| Logical position in cell. | |
| logical | initialized = .FALSE. |
| Has tracer been initialized. | |
| logical | inv = .FALSE. |
| Perform tracing in inverse coordinates? | |
| integer | istate = 0 |
| Needs docs. | |
| integer | itask = 0 |
| Needs docs. | |
| integer, dimension(:), pointer | iwork => NULL() |
| LSODE integer work array. | |
| integer | liw = 0 |
| Needs docs. | |
| integer | lrw = 0 |
| Needs docs. | |
| integer(i4) | maxsteps = 1e6 |
| Maximum number of timesteps. | |
| class(oft_bmesh), pointer | mesh => NULL() |
| integer | neq = 2 |
| Number of ODE equations to advance. | |
| integer(i4) | nsteps = 0 |
| Number of timesteps taken. | |
| real(r8) | raxis = 0.d0 |
| Radial location of axis for inverse coordinates. | |
| real(r8), dimension(:), pointer | rwork => NULL() |
| LSODE floating point work array. | |
| integer(i4) | status = 0 |
| Status of tracer. | |
| real(r8) | t = 0.d0 |
| Current time. | |
| real(r8) | tol = 1.d-4 |
| Tolerance for ODE solver. | |
| real(r8) | tout = 0.d0 |
| Needs docs. | |
| real(r8), dimension(:), pointer | v => NULL() |
| Current ODE solution vector. | |
| real(r8), dimension(2) | y = 0.d0 |
| Position in real coordinates (eg. X,Y) | |
| real(r8) | zaxis = 0.d0 |
| Vertical location of axis for inverse coordinates. | |
|
pure virtualinherited |
Destroy tracer and deallocate internal storage.
| [in,out] | self | Tracer object |
| procedure delete | ( | class(tracer_lsode), intent(inout) | self | ) |
Destroy LSODE tracer and deallocate internal storage.
| [in,out] | self | LSODE tracer object |
|
pure virtualinherited |
Setup tracer and initialize ODE solver.
| [in,out] | self | Tracer object |
| [in] | y | Initial position in physical coordinates |
| [in] | cell | Starting guess for cell |
| procedure setup | ( | class(tracer_lsode), intent(inout) | self, |
| real(8), dimension(2), intent(in) | y, | ||
| integer(4), intent(in), optional | cell | ||
| ) |
Initialize tracer using LSODE.
| [in,out] | self | LSODE tracer object |
| [in] | y | Initial position |
| [in] | cell | Guess for starting cell |
|
pure virtualinherited |
Take one step of the ODE solver.
| [in,out] | self | Tracer object |
| procedure step | ( | class(tracer_lsode), intent(inout) | self | ) |
Advance the tracer one step using LSODE.
| [in,out] | self | LSODE tracer object |
|
inherited |
Interpolation object for field evaluation.
|
inherited |
Current cell containing tracer.
|
inherited |
Timestep (for fixed step methods)
|
inherited |
Change in ODE solution over last step.
|
inherited |
Change in position in real coordinates (eg. X,Y)
|
inherited |
Logical position in cell.
|
inherited |
Has tracer been initialized.
|
inherited |
Perform tracing in inverse coordinates?
| integer istate = 0 |
Needs docs.
| integer itask = 0 |
Needs docs.
| integer, dimension(:), pointer iwork => NULL() |
LSODE integer work array.
| integer liw = 0 |
Needs docs.
| integer lrw = 0 |
Needs docs.
|
inherited |
Maximum number of timesteps.
|
inherited |
|
inherited |
Number of ODE equations to advance.
|
inherited |
Number of timesteps taken.
|
inherited |
Radial location of axis for inverse coordinates.
| real(r8), dimension(:), pointer rwork => NULL() |
LSODE floating point work array.
|
inherited |
Status of tracer.
|
inherited |
Current time.
|
inherited |
Tolerance for ODE solver.
| real(r8) tout = 0.d0 |
Needs docs.
|
inherited |
Current ODE solution vector.
|
inherited |
Position in real coordinates (eg. X,Y)
|
inherited |
Vertical location of axis for inverse coordinates.