The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
tracer_lsode Type Referenceabstract

Detailed Description

Tracer implementation using LSODE as the ODE solver.

Inheritance diagram for tracer_lsode:

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(i4cell = 0
 Current cell containing tracer.
real(r8dt = 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(i4maxsteps = 1e6
 Maximum number of timesteps.
class(oft_bmesh), pointer mesh => NULL()
integer neq = 2
 Number of ODE equations to advance.
integer(i4nsteps = 0
 Number of timesteps taken.
real(r8raxis = 0.d0
 Radial location of axis for inverse coordinates.
real(r8), dimension(:), pointer rwork => NULL()
 LSODE floating point work array.
integer(i4status = 0
 Status of tracer.
real(r8t = 0.d0
 Current time.
real(r8tol = 1.d-4
 Tolerance for ODE solver.
real(r8tout = 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(r8zaxis = 0.d0
 Vertical location of axis for inverse coordinates.

Member Function/Subroutine Documentation

◆ delete() [1/2]

procedure(tracer_step), deferred delete ( class(tracer), intent(inout) self)
pure virtualinherited

Destroy tracer and deallocate internal storage.

Parameters
[in,out]selfTracer object

◆ delete() [2/2]

procedure delete ( class(tracer_lsode), intent(inout) self)

Destroy LSODE tracer and deallocate internal storage.

Parameters
[in,out]selfLSODE tracer object

◆ setup() [1/2]

procedure(tracer_setup), deferred setup ( class(tracer), intent(inout) self,
real(8), dimension(2), intent(in) y,
integer(4), intent(in), optional cell )
pure virtualinherited

Setup tracer and initialize ODE solver.

Parameters
[in,out]selfTracer object
[in]yInitial position in physical coordinates
[in]cellStarting guess for cell

◆ setup() [2/2]

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.

Parameters
[in,out]selfLSODE tracer object
[in]yInitial position
[in]cellGuess for starting cell

◆ step() [1/2]

procedure(tracer_step), deferred step ( class(tracer), intent(inout) self)
pure virtualinherited

Take one step of the ODE solver.

Parameters
[in,out]selfTracer object

◆ step() [2/2]

procedure step ( class(tracer_lsode), intent(inout) self)

Advance the tracer one step using LSODE.

Parameters
[in,out]selfLSODE tracer object

Member Data Documentation

◆ b

class(bfem_interp), pointer b => NULL()
inherited

Interpolation object for field evaluation.

◆ cell

integer(i4) cell = 0
inherited

Current cell containing tracer.

◆ dt

real(r8) dt = 0.d0
inherited

Timestep (for fixed step methods).

◆ dv

real(r8), dimension(:), pointer dv => NULL()
inherited

Change in ODE solution over last step.

◆ dy

real(r8), dimension(2) dy = 0.d0
inherited

Change in position in real coordinates (eg. X,Y).

◆ f

real(r8), dimension(3) f = 0.d0
inherited

Logical position in cell.

◆ initialized

logical initialized = .FALSE.
inherited

Has tracer been initialized.

◆ inv

logical inv = .FALSE.
inherited

Perform tracing in inverse coordinates?

◆ istate

integer istate = 0

Needs docs.

◆ itask

integer itask = 0

Needs docs.

◆ iwork

integer, dimension(:), pointer iwork => NULL()

LSODE integer work array.

◆ liw

integer liw = 0

Needs docs.

◆ lrw

integer lrw = 0

Needs docs.

◆ maxsteps

integer(i4) maxsteps = 1e6
inherited

Maximum number of timesteps.

◆ mesh

class(oft_bmesh), pointer mesh => NULL()
inherited

◆ neq

integer neq = 2
inherited

Number of ODE equations to advance.

◆ nsteps

integer(i4) nsteps = 0
inherited

Number of timesteps taken.

◆ raxis

real(r8) raxis = 0.d0
inherited

Radial location of axis for inverse coordinates.

◆ rwork

real(r8), dimension(:), pointer rwork => NULL()

LSODE floating point work array.

◆ status

integer(i4) status = 0
inherited

Status of tracer.

◆ t

real(r8) t = 0.d0
inherited

Current time.

◆ tol

real(r8) tol = 1.d-4
inherited

Tolerance for ODE solver.

◆ tout

real(r8) tout = 0.d0

Needs docs.

◆ v

real(r8), dimension(:), pointer v => NULL()
inherited

Current ODE solution vector.

◆ y

real(r8), dimension(2) y = 0.d0
inherited

Position in real coordinates (eg. X,Y).

◆ zaxis

real(r8) zaxis = 0.d0
inherited

Vertical location of axis for inverse coordinates.


The documentation for this type was generated from the following file: