The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research 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.