Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Data Types | Modules | Macros | Functions/Subroutines
sll_m_cartesian_meshes.F90 File Reference
#include "sll_assert.h"
#include "sll_memory.h"
#include "sll_working_precision.h"
#include "sll_errors.h"
Include dependency graph for sll_m_cartesian_meshes.F90:

Go to the source code of this file.

Data Types

type  sll_t_cartesian_mesh_1d
 1D cartesian mesh More...
 
type  sll_t_cartesian_mesh_2d
 2D cartesian mesh More...
 
type  sll_t_cartesian_mesh_2d_ptr
 2d cartesian mesh pointer More...
 
type  sll_t_cartesian_mesh_3d
 3D cartesian mesh More...
 
type  sll_t_cartesian_mesh_4d
 4D cartesian mesh More...
 
type  sll_t_cartesian_mesh_6d
 6D cartesian mesh More...
 
interface  sll_o_delete
 Deallocates memory for the cartesian mesh. More...
 
interface  operator(*)
 Tensor product. More...
 
interface  sll_o_display
 Print mesh parameters. More...
 
interface  sll_o_get_node_positions
 Get node positions array. More...
 
interface  sll_o_new
 allocates the memory space for a new cartesian mesh on the heap, initializes it with the given arguments and returns a pointer to the object. More...
 
interface  sll_o_cell
 
interface  sll_o_cell_margin
 
interface  sll_o_mesh_area
 

Modules

module  sll_m_cartesian_meshes
 Cartesian mesh basic types.
 

Macros

#define TEST_PRESENCE_AND_ASSIGN_VAL(obj, arg, slot, default_val)
 

Functions/Subroutines

type(sll_t_cartesian_mesh_1d) function, pointer, public sll_f_new_cartesian_mesh_1d (num_cells, eta_min, eta_max)
 allocates the memory space for a new 1D cartesian mesh on the heap, initializes it with the given arguments and returns a pointer to the object. More...
 
subroutine, public sll_s_cartesian_mesh_1d_init (m, num_cells, eta_min, eta_max)
 Initializes a previously allocated 1D cartesian mesh object. More...
 
type(sll_t_cartesian_mesh_2d) function, pointer, public sll_f_tensor_product_1d_1d (m_a, m_b)
 Create a 2d mesh from two 1d meshes. More...
 
type(sll_t_cartesian_mesh_4d) function, pointer tensor_product_2d_2d (m_a, m_b)
 Create a 4d mesh from two 2d meshes. More...
 
subroutine get_node_positions_1d (m, eta1_node)
 
real(kind=f64) function eta1_node_1d (mesh, i)
 
real(kind=f64) function eta1_cell_1d (mesh, i)
 
subroutine get_node_positions_2d (m, eta1, eta2)
 
type(sll_t_cartesian_mesh_2d) function, pointer, public sll_f_new_cartesian_mesh_2d (num_cells1, num_cells2, eta1_min, eta1_max, eta2_min, eta2_max)
 allocates the memory space for a new 2D cartesian mesh on the heap, initializes it with the given arguments and returns a pointer to the object. More...
 
subroutine, public sll_s_cartesian_mesh_2d_init (m, num_cells1, num_cells2, eta1_min, eta1_max, eta2_min, eta2_max)
 initializes a cartesian mesh 2D object that has been already allocated. More...
 
real(kind=f64) function eta1_node_2d (mesh, i, j)
 
real(kind=f64) function eta2_node_2d (mesh, i, j)
 
real(kind=f64) function eta1_cell_2d_two_arg (mesh, i, j)
 
real(kind=f64) function eta2_cell_2d_two_arg (mesh, i, j)
 
real(kind=f64) function eta1_cell_2d_one_arg (mesh, cell_num)
 
real(kind=f64) function eta2_cell_2d_one_arg (mesh, cell_num)
 
type(sll_t_cartesian_mesh_3d) function, pointer, public sll_f_new_cartesian_mesh_3d (num_cells1, num_cells2, num_cells3, eta1_min, eta1_max, eta2_min, eta2_max, eta3_min, eta3_max)
 allocates the memory space for a new 3D cartesian mesh on the heap, initializes it with the given arguments and returns a pointer to the object. More...
 
subroutine, public sll_s_cartesian_mesh_3d_init (m, num_cells1, num_cells2, num_cells3, eta1_min, eta1_max, eta2_min, eta2_max, eta3_min, eta3_max)
 allocates the memory space for a new 3D cartesian mesh, initializes it with the given arguments and returns the object. More...
 
real(kind=f64) function eta1_node_3d (mesh, i1, i2, i3)
 
real(kind=f64) function eta2_node_3d (mesh, i1, i2, i3)
 
real(kind=f64) function eta3_node_3d (mesh, i1, i2, i3)
 
real(kind=f64) function eta1_cell_3d (mesh, i1, i2, i3)
 
real(kind=f64) function eta2_cell_3d (mesh, i1, i2, i3)
 
real(kind=f64) function eta3_cell_3d (mesh, i1, i2, i3)
 
type(sll_t_cartesian_mesh_4d) function, pointer, public sll_f_new_cartesian_mesh_4d (num_cells1, num_cells2, num_cells3, num_cells4, eta1_min, eta1_max, eta2_min, eta2_max, eta3_min, eta3_max, eta4_min, eta4_max)
 allocates the memory space for a new 4D cartesian mesh on the heap, More...
 
real(kind=f64) function eta1_node_4d (mesh, i1, i2, i3, i4)
 
real(kind=f64) function eta2_node_4d (mesh, i1, i2, i3, i4)
 
real(kind=f64) function eta3_node_4d (mesh, i1, i2, i3, i4)
 
real(kind=f64) function eta4_node_4d (mesh, i1, i2, i3, i4)
 
real(kind=f64) function eta1_cell_4d (mesh, i1, i2, i3, i4)
 
real(kind=f64) function eta2_cell_4d (mesh, i1, i2, i3, i4)
 
real(kind=f64) function eta3_cell_4d (mesh, i1, i2, i3, i4)
 
real(kind=f64) function eta4_cell_4d (mesh, i1, i2, i3, i4)
 
subroutine display_cartesian_mesh_1d (mesh)
 display contents of a 1D cartesian mesh. Recommended access through the generic interface sll_o_display( mesh ). More...
 
subroutine display_cartesian_mesh_2d (mesh)
 display contents of a 2d cartesian mesh. Recommended access through the generic interface sll_o_display( mesh ). More...
 
subroutine display_cartesian_mesh_3d (mesh)
 display contents of a 3d cartesian mesh. Recommended access through the generic interface sll_o_display( mesh ). More...
 
subroutine display_cartesian_mesh_4d (mesh)
 display contents of a 4d cartesian mesh. Recommended access through the generic interface sll_o_display( mesh ). More...
 
subroutine sll_s_cartesian_mesh_1d_free (mesh)
 deallocates memory for the 1D cartesian mesh. Recommended access through the generic interface delete( mesh ). More...
 
subroutine sll_s_cartesian_mesh_2d_free (mesh)
 deallocates memory for the 2D cartesian mesh. Recommended access through the generic interface delete( mesh ). More...
 
subroutine, public sll_s_cartesian_mesh_3d_free (mesh)
 deallocates memory for the 3D cartesian mesh. Recommended access through the generic interface delete( mesh ). More...
 
subroutine sll_s_cartesian_mesh_4d_free (mesh)
 deallocates memory for the 4D cartesian mesh. Recommended access through the generic interface delete( mesh ). More...
 
real(kind=f64) function, dimension(mesh%num_cells+1) nodes_cartesian_mesh_1d (mesh)
 Returns all nodes for the 1D cartesian mesh. More...
 
integer(kind=i32) function, dimension(size(point)) cell_cartesian_mesh_1d (mesh, point)
 Returns cell number(s) for given point(s) in cartesian mesh. More...
 
real(kind=f64) function, dimension(2) cell_margin_cartesian_mesh_1d (mesh, cell)
 Returns the margin (a,b) for a given cell. More...
 
integer(kind=i32) function num_nodes_cartesian_mesh_1d (mesh)
 Returns the number of nodes for the 1D cartesian mesh. More...
 
real(kind=f64) function length_cartesian_mesh_1d (mesh)
 Returns the interval length for a 1D cartesian mesh. More...
 
real(kind=f64) function area_cartesian_mesh_2d (mesh)
 Returns the area size for a 2D cartesian mesh. More...
 
real(kind=f64) function area_cartesian_mesh_3d (mesh)
 Returns the area size for a 3D cartesian mesh. More...
 
real(kind=f64) function area_cartesian_mesh_4d (mesh)
 Returns the area size for a 3D cartesian mesh. More...
 
real(kind=f64) function period_cartesian_mesh_1d (mesh, point)
 Returns coordinate in a periodic mesh. More...
 
subroutine sll_s_cartesian_mesh_6d_init (this, num_cells, eta_min, eta_max)
 initialize a 6D cartesian mesh More...
 
subroutine display_cartesian_mesh_6d (mesh)
 display contents of a 6d cartesian mesh. Recommended access through the generic interface sll_display( mesh ). More...
 
subroutine sll_s_cartesian_mesh_6d_free (this)
 destructor of 6D cartesian mesh More...
 

Macro Definition Documentation

◆ TEST_PRESENCE_AND_ASSIGN_VAL

#define TEST_PRESENCE_AND_ASSIGN_VAL (   obj,
  arg,
  slot,
  default_val 
)
Value:
1  if (present(arg)) then; \
2  obj%slot = arg; \
3  else; \
4  obj%slot = default_val; \
5  end if
    Report Typos and Errors