The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
tracer_lsode Type Referenceabstract

Detailed Description

Tracer implementation using LSODE as the ODE solver.

Inheritance diagram for tracer_lsode:
Inheritance graph
[legend]

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: