Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Derived types and interfaces | |
type | sll_t_hex_mesh_2d |
2d hexagonal mesh More... | |
type | hex_mesh_2d_ptr |
interface | sll_o_delete |
Functions/Subroutines | |
type(sll_t_hex_mesh_2d) function, pointer, public | sll_f_new_hex_mesh_2d (num_cells, center_x1, center_x2, r11, r12, r21, r22, r31, r32, radius, EXTRA_TABLES) |
Creates and initializes a new hexagonal mesh. More... | |
subroutine, public | sll_s_hex_mesh_2d_init (mesh, num_cells, radius, center_x1, center_x2, r1_x1, r1_x2, r2_x1, r2_x2, r3_x1, r3_x2, EXTRA_TABLES) |
initializes a previously allocated 2d hex-mesh More... | |
subroutine | init_center_points_triangle (mesh) |
<BRIEF_DESCRIPTION> More... | |
subroutine | init_edge_center_triangle (mesh) |
<BRIEF_DESCRIPTION> More... | |
subroutine | index_hex_to_global (mesh, k1, k2, index_tab) |
Finds the index in the global array of the point which coordinates where passed as parameter. More... | |
real(kind=f64) function | eta1_node_hex (mesh, i, j) |
Computes the first cartesian coordinate of a given point. More... | |
real(kind=f64) function | eta2_node_hex (mesh, i, j) |
Computes the second cartesian coordinate of a given point. More... | |
function | eta1_cell_hex (mesh, cell_num) |
Computes the first cartesian coordinate of the center of the cell. More... | |
real(kind=f64) function | eta2_cell_hex (mesh, cell_num) |
Computes the 2nd cartesian coordinate of the center of the cell. More... | |
real(kind=f64) function | eta1_cell_hex_two_arg (mesh, i, j) |
NOT IMPLEMENTED. More... | |
real(kind=f64) function | eta2_cell_hex_two_arg (mesh, i, j) |
NOT IMPLEMENTED. More... | |
integer(kind=i32) function, public | sll_f_cells_to_origin (k1, k2) |
Computes the number of cell from point to origin. More... | |
subroutine | cell_type (mesh, num_ele, val) |
Computes the type of triangle of a given cell. More... | |
function | hex_to_global (mesh, k1, k2) |
Transform hexagonal coordinates to global index. More... | |
function | global_to_hex1 (mesh, index) |
Gives the 1st hexagonal coordinate to point of global index "index". More... | |
function | global_to_hex2 (mesh, index) |
Gives the 2nd hexagonal coordinate to point of global index "index". More... | |
function | global_to_x1 (mesh, index) |
Gives the 1st cartesian coordinate to point of global index "index". More... | |
function | global_to_x2 (mesh, index) |
Gives the 2nd cartesian coordinate to point of global index "index". More... | |
function, public | sll_f_cart_to_hex1 (mesh, x1, x2) |
Transform cartesian coordinates to 1st hexagonal coordinates. More... | |
function, public | sll_f_cart_to_hex2 (mesh, x1, x2) |
Transform cartesian coordinates to 2ndst hexagonal coordinates. More... | |
function | global_to_local (mesh, ref_index, global) |
Transforms global to local index in respect to a reference index. More... | |
function, public | sll_f_local_to_global (mesh, ref_index, local) |
Transforms local index in a given reference local indexation to a global index from the mesh. More... | |
function | local_hex_to_global (mesh, k1_ref, k2_ref, local) |
Same as sll_f_local_to_global but taking hexagonal coordinates as reference indexing. More... | |
subroutine, public | sll_s_get_cell_vertices_index (x, y, mesh, s1, s2, s3) |
Returns indices of the edges of a given cell. More... | |
subroutine, public | sll_s_get_triangle_index (k1, k2, mesh, x, triangle_index) |
Given a mesh point and the first cartesian coordinate of a point (that is not on the mesh) we return the given cell index. More... | |
subroutine | get_neighbours (mesh, cell_index, nei_1, nei_2, nei_3) |
returns the indices of the neighbouring cells/triangles More... | |
subroutine, public | sll_s_get_edge_index (k1, k2, mesh, x, edge_index1, edge_index2, edge_index3) |
<BRIEF_DESCRIPTION> More... | |
function, public | sll_f_change_elements_notation (mesh, i_elmt_old) |
Function that allows to change from the current element notation to one more intuitive. More... | |
recursive subroutine | hex_to_aligned_pt (mesh, ind, transf, x_new, y_new) |
Computes the coordinate transformation hex->aligned for a point. More... | |
subroutine | hex_to_aligned_elmt (mesh, i_elmt, transf, transf_matA, transf_vecB) |
Computes the coordinate transformation hex->aligned for an element. More... | |
subroutine | ref_to_hex_elmt (mesh, i_elmt, transf_matA, transf_vecB) |
Computes the coordinate transformation ref->hex for an element. More... | |
subroutine | ref_to_aligned_elmt (mesh, i_elmt, transf, transf_matA, transf_vecB) |
Computes the coordinate transformation ref->aligned for an element. More... | |
subroutine, public | sll_s_display_hex_mesh_2d (mesh) |
Displays hexagonal mesh in terminal. More... | |
subroutine, public | sll_s_write_caid_files (mesh, transf, spline_deg) |
Writes files for CAID. More... | |
subroutine | write_hex_mesh_2d (mesh, name) |
Writes the hexagonal mesh into a given file. More... | |
subroutine | write_field_hex_mesh_xmf (mesh, field, name) |
Same as write_field_hex_mesh but output in xmf. More... | |
subroutine | write_hex_mesh_mtv (mesh, mtv_file) |
Same as write_hex_mesh but output is mtv file. More... | |
subroutine, public | sll_s_delete_hex_mesh_2d (mesh) |
Deletes an hexagonal mesh. More... | |
|
private |
Computes the type of triangle of a given cell.
Takes a given cell and determines if it is of type II if is oriented as the cell#2 (triangle of edges: (0,0) (sqrt(3)/2, 1/2) (0,1)) or of type I otherwise (triangle of edges: (0,0) (-sqrt(3)/2, 1/2) (0,1))
[IN] | num_ele integer index of the element |
[IN] | mesh hexagonal mesh |
[OUT] | val integer val = 1 if triangle of type I, 2 if triangle of type II, or -1 if there was an error |
Definition at line 844 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the first cartesian coordinate of the center of the cell.
Computes the first coordinate (eta1) on the cartesian system of the center of the cell which has for global index cell_num
[in] | cell_num | integer denoting the index of the cell returns res real containing 1st cartesian coordinate of the cell's center |
Definition at line 752 of file sll_m_hexagonal_meshes.F90.
|
private |
NOT IMPLEMENTED.
NOT IMPLEMENTED
[<IN | or OUT or INOUT>] <PARAM1> |
[<IN | or OUT or INOUT>] <PARAM2> |
Definition at line 786 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the first cartesian coordinate of a given point.
Computes the first cartesian coordinate on the cartesian system of a point which has for hexagonal coordinates (i,j)
i | integer denoting the first hexagonal coordinate of a point |
j | integer denoting the second hexagonal coordinate of a point returns res real containing the coordinate "eta1" |
Definition at line 718 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the 2nd cartesian coordinate of the center of the cell.
Computes the 2nd coordinate (eta2) on the cartesian system of the center of the cell which has for global index cell_num
[in] | cell_num | integer denoting the index of the cell returns res real containing 2nd cartesian coordinate of the cell's center |
Definition at line 769 of file sll_m_hexagonal_meshes.F90.
|
private |
NOT IMPLEMENTED.
NOT IMPLEMENTED
[<IN | or OUT or INOUT>] <PARAM1> |
[<IN | or OUT or INOUT>] <PARAM2> |
Definition at line 802 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the second cartesian coordinate of a given point.
Computes the second cartesian coordinate on the cartesian system of a point which has for hexagonal coordinates (i,j)
i | integer denoting the first hexagonal coordinate of a point |
j | integer denoting the second hexagonal coordinate of a point returns res real containing the coordinate "eta2" |
Definition at line 736 of file sll_m_hexagonal_meshes.F90.
|
private |
returns the indices of the neighbouring cells/triangles
mesh | hex_mesh hexagonal mesh |
cell_index | integer: index of the cell from which we want to know the neighbours |
[OUT] | nei_1 integer: index of the 1st neighbour |
[OUT] | nei_2 integer: index of the 2nd neighbour |
[OUT] | nei_3 integer: index of the 3rd neighbour |
Definition at line 1235 of file sll_m_hexagonal_meshes.F90.
|
private |
Gives the 1st hexagonal coordinate to point of global index "index".
Takes the global index of the point (see hex_to_global(...) for conventions) returns the first coordinate (k1) on the (r1,r2) basis
[IN] | mesh hexagonal mesh |
[IN] | index global index of point we need hexagonal coordinates |
Definition at line 934 of file sll_m_hexagonal_meshes.F90.
|
private |
Gives the 2nd hexagonal coordinate to point of global index "index".
Takes the global index of the point (see hex_to_global(...) for conventions) returns the second coordinate (k2) on the (r1,r2) basis
[IN] | mesh hexagonal mesh |
[IN] | index global index of point we need hexagonal coordinates |
Definition at line 948 of file sll_m_hexagonal_meshes.F90.
|
private |
Transforms global to local index in respect to a reference index.
In the same manner that we assign global indices (see hex_to_global(...)) we assign local indices, but this time the initial point is the point which index is ref_index ie. local_index(i,i) = 1
[IN] | mesh hexagonal mesh |
[IN] | ref_index reference index from which the local index is counted |
[IN] | global global index of point we wish to know local index |
Definition at line 1029 of file sll_m_hexagonal_meshes.F90.
|
private |
Gives the 1st cartesian coordinate to point of global index "index".
Takes the global index of the point (see hex_to_global(...) for conventions) returns the first coordinate (x1) on the cartesian basis
[IN] | mesh hexagonal mesh |
[IN] | index global index of point we need hexagonal coordinates |
Definition at line 962 of file sll_m_hexagonal_meshes.F90.
|
private |
Gives the 2nd cartesian coordinate to point of global index "index".
Takes the global index of the point (see hex_to_global(...) for conventions) returns the second coordinate (x2) on the cartesian basis
[IN] | mesh hexagonal mesh |
[IN] | index global index of point we need hexagonal coordinates |
Definition at line 976 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the coordinate transformation hex->aligned for an element.
Given an element in the hexagonal mesh, this subroutine computes the affine transformation that maps the element to the aligned transforma- tion. This transformation can be written in the form AX + B = X'.
[IN] | mesh hexagonal mesh |
[IN] | i_elmt int index of the element in the hexagonal mesh. |
[OUT] | transf_matA real matrix that contains the A matrix. |
[OUT] | transf_vecB real vector that contains the B vector. |
Definition at line 1596 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the coordinate transformation hex->aligned for a point.
Given a point in the hexagonal mesh, this subroutine computes the coordinates it would have if mapped to an aligned flux surface.
[IN] | mesh hexagonal mesh |
[IN] | ind integer index of the point to be mapped. |
[IN] | x real the x-coordinate of point to be mapped |
[IN] | y real the y-coordinate of point to be mapped |
[OUT] | x_new real the x-coordinate of mapped point |
[OUT] | y_new real the y-coordinate of mapped point |
Definition at line 1516 of file sll_m_hexagonal_meshes.F90.
|
private |
Transform hexagonal coordinates to global index.
Takes the coordinates (k1,k2) on the (r1,r2) basis and returns global index of that mesh point. By default the index of the center of the mesh is 0. Then following the r1 direction and a counter-clockwise motion we assing an index to every point of the mesh.
[IN] | mesh hexagonal mesh |
[IN] | k1 first hexagonal coordinate |
[IN] | k2 second hexagonal coordinate |
[OUT] | val global index of point at (k1, k2) |
Definition at line 906 of file sll_m_hexagonal_meshes.F90.
|
private |
Finds the index in the global array of the point which coordinates where passed as parameter.
To every mesh point of associated hexagonal coordinates (k1,k2) we can associate a global index. This notation association can be accessed through an array initialized at the initialization of the object This function, computes the connectivity between the hexagonal mesh and the table.
k1 | integer denoting the first hexagonal coordinate of a point |
k2 | integer denoting the second hexagonal coordinate of a point |
index_tab | out integer denoting the index to get the global index of the point situated at (k1, k2) |
Definition at line 677 of file sll_m_hexagonal_meshes.F90.
|
private |
<BRIEF_DESCRIPTION>
<DETAILED_DESCRIPTION>
[<IN | or OUT or INOUT>] <PARAM1> |
[<IN | or OUT or INOUT>] <PARAM2> |
Definition at line 478 of file sll_m_hexagonal_meshes.F90.
|
private |
<BRIEF_DESCRIPTION>
<DETAILED_DESCRIPTION>
[<IN | or OUT or INOUT>] <PARAM1> |
[<IN | or OUT or INOUT>] <PARAM2> |
Definition at line 572 of file sll_m_hexagonal_meshes.F90.
|
private |
Same as sll_f_local_to_global but taking hexagonal coordinates as reference indexing.
returns the global index of the point which has as
[IN] | mesh hexagonal mesh |
[IN] | k1_ref 1st hex coordinate of reference index for local system |
[IN] | k2_ref 2nd hex coordinate of reference index for local system |
[IN] | local Local index on reference system |
Definition at line 1096 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the coordinate transformation ref->aligned for an element.
Given an element in the hexagonal mesh, this subroutine computes the affine transformation that maps the reference triangle to the element following an aligned transformation. This transformation can be written in the form AX + B = X', as it is a combination of ref_to_hex_elmt and hex_to_aligned_elmt.
[IN] | mesh hexagonal mesh |
[IN] | i_elmt int index of the element in the hexagonal mesh. |
[OUT] | transf_matA real matrix that contains the A matrix. |
[OUT] | transf_vecB real vector that contains the B vector. |
Definition at line 1757 of file sll_m_hexagonal_meshes.F90.
|
private |
Computes the coordinate transformation ref->hex for an element.
The coordinate transformation is the transformation from the reference element to the current cell. As the reference element is the 1st cell of an hexagonal mesh of radius 1 the transformation is only a rotation followed by a translation. Thus we only need 6 values to stock the transformation. 4 values for the matrix A and 2 for the vector v, where: Ax + b = x'. x being the reference coordinates and x' the coordinates of the current mesh. Reference coordinates: (0,0), (sqrt(3)/2, 0.5), (0,1)
[IN] | mesh hexagonal mesh |
[IN] | i_elmt int index of the element in the hexagonal mesh. |
[OUT] | transf_matA real matrix that contains the A matrix. |
[OUT] | transf_vecB real vector that contains the B vector. |
Definition at line 1703 of file sll_m_hexagonal_meshes.F90.
function, public sll_m_hexagonal_meshes::sll_f_cart_to_hex1 | ( | class(sll_t_hex_mesh_2d) | mesh, |
x1, | |||
x2 | |||
) |
Transform cartesian coordinates to 1st hexagonal coordinates.
Takes the coordinates (x1,x2) on the cartesian basis and returns the first coordinate (k1) on the (r1, r2) basis
[IN] | mesh hexagonal mesh |
[IN] | x1 first cartesian coordinate |
[IN] | x2 second cartesian coordinate |
Definition at line 991 of file sll_m_hexagonal_meshes.F90.
function, public sll_m_hexagonal_meshes::sll_f_cart_to_hex2 | ( | class(sll_t_hex_mesh_2d) | mesh, |
x1, | |||
x2 | |||
) |
Transform cartesian coordinates to 2ndst hexagonal coordinates.
Takes the coordinates (x1,x2) on the cartesian basis and returns the second coordinate (k2) on the (r1, r2) basis
[IN] | mesh hexagonal mesh |
[IN] | x1 first cartesian coordinate |
[IN] | x2 second cartesian coordinate |
Definition at line 1009 of file sll_m_hexagonal_meshes.F90.
integer(kind=i32) function, public sll_m_hexagonal_meshes::sll_f_cells_to_origin | ( | integer(kind=i32), intent(in) | k1, |
integer(kind=i32), intent(in) | k2 | ||
) |
Computes the number of cell from point to origin.
Takes the coordinates (k1,k2) on the (r1,r2) basis and returns the number of cells between that point and the origin. If (k1, k2) = (0,0), then val = 0
[IN] | k1 integer first hexagonal coordinate of a point |
[IN] | k2 integer second hexagonal coordinate of a point |
[OUT] | val integer number of cells to origin |
Definition at line 821 of file sll_m_hexagonal_meshes.F90.
function, public sll_m_hexagonal_meshes::sll_f_change_elements_notation | ( | type(sll_t_hex_mesh_2d), pointer | mesh, |
intent(in) | i_elmt_old | ||
) |
Function that allows to change from the current element notation to one more intuitive.
As the notations of the elements, chosen by Charles, is not really intuitive, this functions allow to go from that one, to one easier to understand. It will give the index of the element in the new notation system, when given an index of the older system. Here is the difference between the two notation for a mesh of 6 elements (ie. nc = 1): Charles notation: || New notation: /|\ || /|\ / 1|2 \ || / 2|1 \ | 3|/6 | || | 3|/6 | The new notation system | /4|5\ | || | /4|5\ | respects more the hexagonal |/ || |/ notation style.
[in] | mesh | pointer to the hexagonal mesh |
[in] | i_elmt_old | integer index of an element in Charles notation |
[out] | i_elmt | integer index of an element in the new notation system. |
Definition at line 1370 of file sll_m_hexagonal_meshes.F90.
function, public sll_m_hexagonal_meshes::sll_f_local_to_global | ( | class(sll_t_hex_mesh_2d) | mesh, |
ref_index, | |||
local | |||
) |
Transforms local index in a given reference local indexation to a global index from the mesh.
returns the global index of the point which has as
[IN] | mesh hexagonal mesh |
[IN] | ref_index reference index where the local indexation starts |
[IN] | local local index in the indexation starting at ref_index |
Definition at line 1063 of file sll_m_hexagonal_meshes.F90.
type(sll_t_hex_mesh_2d) function, pointer, public sll_m_hexagonal_meshes::sll_f_new_hex_mesh_2d | ( | integer(kind=i32), intent(in) | num_cells, |
real(kind=f64), intent(in), optional | center_x1, | ||
real(kind=f64), intent(in), optional | center_x2, | ||
real(kind=f64), intent(in), optional | r11, | ||
real(kind=f64), intent(in), optional | r12, | ||
real(kind=f64), intent(in), optional | r21, | ||
real(kind=f64), intent(in), optional | r22, | ||
real(kind=f64), intent(in), optional | r31, | ||
real(kind=f64), intent(in), optional | r32, | ||
real(kind=f64), intent(in), optional | radius, | ||
integer(kind=i32), intent(in), optional | EXTRA_TABLES | ||
) |
Creates and initializes a new hexagonal mesh.
An hexagonal mesh is defined using the number of cells in each direction, the coordinates of its center, the generator vectors values, and the radius
num_cells | integer denoting the number of cells in any direction parting from origin |
center_x1 | optional real: first cartesian coordinate of the origin |
center_x2 | optional real: second cartesian coordinate of the origin |
r11 | optional real: 1st cartesian coordinate of 1st generating vector |
r12 | optional real: 2nd cartesian coordinate of 1st generating vector |
r21 | optional real: 1st cartesian coordinate of 2nd generating vector |
r22 | optional real: 2nd cartesian coordinate of 2nd generating vector |
r31 | optional real: 1st cartesian coordinate of 3rd generating vector |
r32 | optional real: 2nd cartesian coordinate of 3rd generating vector |
radius | optional real: distance between origin and external vertex |
EXTRA_TABLES | integer flag: if set to 1 additional tables (for edges' center) will be created return a pointer to the newly allocated object. |
Definition at line 179 of file sll_m_hexagonal_meshes.F90.
subroutine, public sll_m_hexagonal_meshes::sll_s_delete_hex_mesh_2d | ( | class(sll_t_hex_mesh_2d), intent(inout) | mesh | ) |
Deletes an hexagonal mesh.
Takes care of all deallocation necessary to sll_o_delete an hex mesh
[IN] | mesh hexagonal mesh to be deleted |
Definition at line 2200 of file sll_m_hexagonal_meshes.F90.
subroutine, public sll_m_hexagonal_meshes::sll_s_display_hex_mesh_2d | ( | class(sll_t_hex_mesh_2d), intent(in) | mesh | ) |
Displays hexagonal mesh in terminal.
Displays a simple text describing the mesh to the terminal
[IN] | mesh hexagonal mesh |
Definition at line 1785 of file sll_m_hexagonal_meshes.F90.
subroutine, public sll_m_hexagonal_meshes::sll_s_get_cell_vertices_index | ( | intent(in) | x, |
intent(in) | y, | ||
class(sll_t_hex_mesh_2d), intent(in) | mesh, | ||
intent(out) | s1, | ||
intent(out) | s2, | ||
intent(out) | s3 | ||
) |
Returns indices of the edges of a given cell.
Returns global indices of the edges of a a given cell. The cell index is obtained by knowing where the point at (x,y) is. If you need the edges of a cell from which you only know the CELL INDEX, you can use this function as follows: call sll_s_get_cell_vertices_index(meshcenter_cartesian_coord(1,cell_index), & mesh, & s1, s2, s3)
[IN] | x 1st cartesian coordiante of a point in the cell we wish to know the indices |
[IN] | y 2nd cartesian coordiante of a point in the cell we wish to know the indices |
[IN] | mesh hexagonal mesh |
[OUT] | s1 index of 1st vertex of the cell where (x,y) is |
[OUT] | s2 index of 2nd vertex of the cell where (x,y) is |
[OUT] | s3 index of 3rd vertex of the cell where (x,y) is |
Definition at line 1132 of file sll_m_hexagonal_meshes.F90.
subroutine, public sll_m_hexagonal_meshes::sll_s_get_edge_index | ( | intent(in) | k1, |
intent(in) | k2, | ||
type(sll_t_hex_mesh_2d), pointer | mesh, | ||
intent(in) | x, | ||
intent(out) | edge_index1, | ||
intent(out) | edge_index2, | ||
intent(out) | edge_index3 | ||
) |
<BRIEF_DESCRIPTION>
<DETAILED_DESCRIPTION>
[<IN | or OUT or INOUT>] <PARAM1> |
[<IN | or OUT or INOUT>] <PARAM2> |
Definition at line 1312 of file sll_m_hexagonal_meshes.F90.
subroutine, public sll_m_hexagonal_meshes::sll_s_get_triangle_index | ( | integer(kind=i32), intent(in) | k1, |
integer(kind=i32), intent(in) | k2, | ||
class(sll_t_hex_mesh_2d), intent(in) | mesh, | ||
real(kind=f64), intent(in) | x, | ||
integer(kind=i32), intent(out) | triangle_index | ||
) |
Given a mesh point and the first cartesian coordinate of a point (that is not on the mesh) we return the given cell index.
Given a the hexagonal coordiantes of a mesh point (k1, k2) and the first cartesian coordinate of a point (x) (that is not on the mesh) we return the given cell index. This function is used to localize a point on the hexagonal mesh. We suppose the user knows the cartesian coordinates (and thus the hexagonal coordinates, see sll_f_cart_to_hex1 and sll_f_cart_to_hex2).
[IN] | k1 first hexagonal coordinate of point we wish to localize |
[IN] | k2 second hexagonal coordinate of point we wish to localize |
[IN] | mesh hexagonal mesh |
[IN] | x first cartesian coordiante of point we wish to localize |
[OUT] | triangle_index index of the cell where the point is localized |
Definition at line 1200 of file sll_m_hexagonal_meshes.F90.
subroutine, public sll_m_hexagonal_meshes::sll_s_hex_mesh_2d_init | ( | type(sll_t_hex_mesh_2d) | mesh, |
intent(in) | num_cells, | ||
intent(in) | radius, | ||
intent(in) | center_x1, | ||
intent(in) | center_x2, | ||
intent(in) | r1_x1, | ||
intent(in) | r1_x2, | ||
intent(in) | r2_x1, | ||
intent(in) | r2_x2, | ||
intent(in) | r3_x1, | ||
intent(in) | r3_x2, | ||
intent(in) | EXTRA_TABLES | ||
) |
initializes a previously allocated 2d hex-mesh
num_cells | integer denoting the number of cells in any direction parting from origin |
center_x1 | optional real: first cartesian coordinate of the origin |
center_x2 | optional real: second cartesian coordinate of the origin |
r11 | optional real: 1st cartesian coordinate of 1st generating vector |
r12 | optional real: 2nd cartesian coordinate of 1st generating vector |
r21 | optional real: 1st cartesian coordinate of 2nd generating vector |
r22 | optional real: 2nd cartesian coordinate of 2nd generating vector |
r31 | optional real: 1st cartesian coordinate of 3rd generating vector |
r32 | optional real: 2nd cartesian coordinate of 3rd generating vector |
radius | optional real: distance between origin and external vertex |
EXTRA_TABLES | integer flag: if set to 1 additional tables (for edges' center) will be created return a pointer to the newly allocated object. |
Definition at line 237 of file sll_m_hexagonal_meshes.F90.
subroutine, public sll_m_hexagonal_meshes::sll_s_write_caid_files | ( | type(sll_t_hex_mesh_2d), pointer | mesh, |
character(len=*), intent(in) | transf, | ||
integer(kind=i32) | spline_deg | ||
) |
Writes files for CAID.
Writes the files elements.txt, nodes.txt and dirichlet.txt describing respectively the mesh's cells, edges and BC in the format of DJANGO CAID and pigasus. This is was written in order to have a Poisson solver for the hex-mesh
mesh | hex-mesh that will be described |
Definition at line 1805 of file sll_m_hexagonal_meshes.F90.
|
private |
Same as write_field_hex_mesh but output in xmf.
This function writes for every point of the hex mesh its cartesian coordinate as well as the value of a given field(vector) at that point
[IN] | mesh the hexagonal mesh |
[IN] | field a vector of size =(number of pts of the mesh) containg the values of a field on every mesh point. |
[IN] | name the name of the file where the info will be written into. |
Definition at line 2004 of file sll_m_hexagonal_meshes.F90.
|
private |
Writes the hexagonal mesh into a given file.
Besides general information of the mesh, this function writes in a text file (called 'name') for every point its global index, as well as the hexagonal and cartesian coordinates
[IN] | mesh the hexagonal mesh |
[IN] | name the name of the file where the info will be written into. |
Definition at line 1967 of file sll_m_hexagonal_meshes.F90.
|
private |
Same as write_hex_mesh but output is mtv file.
Besides general information of the mesh, this function writes in a text file (called 'name') for every point its global index, as well as the hexagonal and cartesian coordinates. To visualize use plotmtv.
[IN] | mesh the hexagonal mesh |
[IN] | name the name of the file where the info will be written into. |
Definition at line 2050 of file sll_m_hexagonal_meshes.F90.