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 | Static Public Attributes | List of all members
oft_tracer_euler Type Referenceabstract

Detailed Description

Tracer implementation using an Euler method.

Inheritance diagram for oft_tracer_euler:
Inheritance graph
[legend]

Public Member Functions

procedure copy (self)
 Create a copy of this tracer.
 
procedure(tracer_copy), deferred copy (self, new)
 Create a copy of this tracer.
 
procedure(tracer_step), deferred delete (self)
 Clean-up internal storage.
 
procedure delete (self)
 Clean-up internal storage.
 
procedure(tracer_recv), deferred recv (self, proc)
 Receive tracer information from other domain.
 
procedure recv (self, proc)
 Receive tracer information from other domain.
 
procedure(tracer_send), deferred send (self, proc)
 Save tracer information for transfer.
 
procedure send (self, proc)
 Save tracer information for transfer.
 
procedure(tracer_setup), deferred setup (self, y, cell, init)
 Initialize tracer at a given point.
 
procedure setup (self, y, cell, init)
 Initialize tracer at a given point.
 
procedure(tracer_step), deferred step (self)
 Advance tracer one step.
 
procedure step (self)
 Advance tracer one step.
 

Public Attributes

class(fem_interp), pointer b => NULL()
 Interpolation operator for trace field.
 
integer(i4cell = 0
 Cell location of last/current trace point.
 
real(r8dt = 0.d0
 Time step for ODE solver.
 
real(r8), dimension(:), pointer dy
 Change from previous trace point.
 
real(r8), dimension(:), pointer dyp
 Previous derivative.
 
integer(i4estatus = 0
 Error status of tracer.
 
real(r8), dimension(4) f = 0.d0
 Logical cell position of last/current trace point.
 
logical initialized = .FALSE.
 Flag to indicate tracer is ready.
 
integer(i4), dimension(2) isend = 0
 Integer MPI transfer array.
 
integer(i4maxsteps = 1e6
 Limit for the number of tracer steps.
 
integer(i4maxtrans = 1e2
 Limit for the number of domain transfers.
 
type(multigrid_mesh), pointer ml_mesh => NULL()
 Muli-grid mesh.
 
integer(i4neq = 3
 Number of equations in ODE system (3)
 
integer(i4nsteps = 0
 Current number of steps.
 
integer(i4ntrans = 0
 Current number of transfers.
 
integer(i4proc = 0
 Processor location of last/current trace point.
 
integer(i4), dimension(2) rids = MPI_REQUEST_NULL
 Active MPI recieve request IDs.
 
real(r8), dimension(:), pointer rsend
 Real MPI transfer array.
 
integer(i4status = 0
 Status of tracer.
 
integer(i4), dimension(2) tids = 0
 Transfer tags for inter-processor communication.
 
real(r8tol = 1.d-4
 Tolerance for ODE solver.
 
real(r8), dimension(:), pointer y
 Possition of current trace point.
 

Static Public Attributes

procedure(tracer_ydot), pointer, nopass ydot => NULL()
 General ODE function.
 

Member Function/Subroutine Documentation

◆ copy() [1/2]

procedure copy ( class(oft_tracer_euler), intent(inout)  self)

Create a copy of this tracer.

Parameters
[in,out]selfTracer object

◆ copy() [2/2]

procedure(tracer_copy), deferred copy ( class(oft_tracer), intent(in)  self,
class(oft_tracer), intent(out), pointer  new 
)
pure virtualinherited

Create a copy of this tracer.

Parameters
[in]selfTracer object
[out]newCopy of tracer object with same type, tolerances and field interpolation object

◆ delete() [1/2]

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

Clean-up internal storage.

Parameters
[in,out]selfTracer object

◆ delete() [2/2]

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

Clean-up internal storage.

Parameters
[in,out]selfTracer object

◆ recv() [1/2]

procedure(tracer_recv), deferred recv ( class(oft_tracer), intent(inout)  self,
integer(i4), intent(in)  proc 
)
pure virtualinherited

Receive tracer information from other domain.

Parameters
[in,out]selfTracer object
[in]procProcessor ID to recieve tracer information from
Returns
MPI request IDs for transfer of real and integer data (2)

◆ recv() [2/2]

procedure recv ( class(oft_tracer_euler), intent(inout)  self,
integer(i4), intent(in)  proc 
)

Receive tracer information from other domain.

This subroutine sets up non-blocking MPI recieve requests and unpacks the resulting data sent by tracer_euler_send

Parameters
[in,out]selfTracer object
[in]procProcessor ID to receive tracer information from
Returns
MPI request IDs for transfer of real and integer data (2)

◆ send() [1/2]

procedure(tracer_send), deferred send ( class(oft_tracer), intent(inout)  self,
integer(i4), intent(in)  proc 
)
pure virtualinherited

Save tracer information for transfer.

Transfer tracer information to new domain

◆ send() [2/2]

procedure send ( class(oft_tracer_euler), intent(inout)  self,
integer(i4), intent(in)  proc 
)

Save tracer information for transfer.

Transfer tracer information to new domain

◆ setup() [1/2]

procedure(tracer_setup), deferred setup ( class(oft_tracer), intent(inout)  self,
real(r8), dimension(:), intent(in)  y,
integer(i4), intent(in), optional  cell,
logical, intent(in), optional  init 
)
pure virtualinherited

Initialize tracer at a given point.

Parameters
[in,out]selfTracer object
[in]yNew start point [3]
[in]cellGuess cell for use in mesh_findcell (optional)
[in]initFlag indicating tracer is starting a new trace and all counts should be set to zero (optional)

◆ setup() [2/2]

procedure setup ( class(oft_tracer_euler), intent(inout)  self,
real(r8), dimension(:), intent(in)  y,
integer(i4), intent(in), optional  cell,
logical, intent(in), optional  init 
)

Initialize tracer at a given point.

Parameters
[in,out]selfTracer object
[in]yNew start point [3]
[in]cellGuess cell for use in mesh_findcell (optional)
[in]initFlag indicating tracer is starting a new trace and all counts should be set to zero (optional)

◆ step() [1/2]

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

Advance tracer one step.

Parameters
[in,out]selfTracer object

◆ step() [2/2]

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

Advance tracer one step.

Parameters
[in,out]selfTracer object

Member Data Documentation

◆ b

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

Interpolation operator for trace field.

◆ cell

integer(i4) cell = 0
inherited

Cell location of last/current trace point.

◆ dt

real(r8) dt = 0.d0
inherited

Time step for ODE solver.

◆ dy

real(r8), dimension(:), pointer dy
inherited

Change from previous trace point.

◆ dyp

real(r8), dimension(:), pointer dyp
inherited

Previous derivative.

◆ estatus

integer(i4) estatus = 0
inherited

Error status of tracer.

◆ f

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

Logical cell position of last/current trace point.

◆ initialized

logical initialized = .FALSE.
inherited

Flag to indicate tracer is ready.

◆ isend

integer(i4), dimension(2) isend = 0

Integer MPI transfer array.

◆ maxsteps

integer(i4) maxsteps = 1e6
inherited

Limit for the number of tracer steps.

◆ maxtrans

integer(i4) maxtrans = 1e2
inherited

Limit for the number of domain transfers.

◆ ml_mesh

type(multigrid_mesh), pointer ml_mesh => NULL()
inherited

Muli-grid mesh.

◆ neq

integer(i4) neq = 3
inherited

Number of equations in ODE system (3)

◆ nsteps

integer(i4) nsteps = 0
inherited

Current number of steps.

◆ ntrans

integer(i4) ntrans = 0
inherited

Current number of transfers.

◆ proc

integer(i4) proc = 0
inherited

Processor location of last/current trace point.

◆ rids

integer(i4), dimension(2) rids = MPI_REQUEST_NULL
inherited

Active MPI recieve request IDs.

◆ rsend

real(r8), dimension(:), pointer rsend

Real MPI transfer array.

◆ status

integer(i4) status = 0
inherited

Status of tracer.

◆ tids

integer(i4), dimension(2) tids = 0
inherited

Transfer tags for inter-processor communication.

◆ tol

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

Tolerance for ODE solver.

◆ y

real(r8), dimension(:), pointer y
inherited

Possition of current trace point.

◆ ydot

procedure(tracer_ydot), pointer, nopass ydot => NULL()
staticinherited

General ODE function.


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