Input file: Snodes.i

Code reference: subroutine node_allocations in file moz.grids.lib.f

Function: The input file Snodes.i is a plain text file which defines a number of templates for different types of "nodes" (see Glossary for definition of "node" in the context of Mozart). These definitions are used by Mozart to allocate memory for the "node". Snodes.i consists of a series of template definitions. Each template definition contains the following variables:

Variable(s)

Description

itempr

Template number - a number which identifies this template

idoc

Number of lines of documentation which follow.

Mozart will read and discard the next idoc lines. This allows a user to provide some comments in the input file which will be ignored by Mozart.

[idoc lines of documentation]


idoc

Number of lines documentation which follow. (This gives the user another comment section.)

[idoc lines of documentation]


ipmode

Number of processor to execute this template

If ipmode > 0, then ipmode = number of the processor which should execute this template (i.e. allocate memory for this type of "node").

If ipmode = 0, then all processors will execute this template. This is known as "peer mode".

idoc

Number of lines of documentation which follow. (This gives the user another comment section.)

[idoc lines of documentation]


node_i

mesh_i

node_i = node number for which this template applies

mesh_i = mesh number for which this template applies

If node_i = 0, the subroutine node_allocation will use the value of node_j which was passed as an argument when node_allocation was called.

If mesh_i = 0, the subroutine node_allocation will use the value of mesh_j which was passed as an argument when node_allocation was called..

node_topology_type

node_sdim

node_nx

node_ny

node_nz

node_nextra

node_amidnodes

maxlnodes

i_linkedmesh

node_matrix_type

node_topology_type = 1 for tensor product

spatial dimension of node [cf. tdim which is target dimension of node]

number of points in the node, in the x dimension

number of points in the node, in the y dimension

number of points in the node, in the z dimension

number of extra points in a node

maximum number of midpoints in this node

maximum number of nodes that you want to link to this node

if i_linkedmesh > 0, allocate meshes linked to node (see node_nmeshes)

if node_matrix_type=0, will have named arrays for fields; i.e. field names like node_x, node_y, node_vx, etc.

if node_matrix_type = 1, all fields will be in node_sources

idoc

Number of lines of documentation which follow. (This gives the user another comment section.)

[idoc lines of documentation]


ilines

ich

number of lines to skip over if this processor is not using this template

variable used for debugging - must be present

node_nsources

number of additional arrays to allocate

?? variable name(s) ??

60 integers which have the value of 0 or 1

If the n'th integer = 1, then the n'th field is allocated for this "node"

If the n'th integer = 0, no memory is allocated for the n'th field

NOTE: the 51st integer and the 52nd integer are special. If the 51st integer is 1, then each of the additional arrays (node_nsources of them) are allocated separately. If the 52nd integer is 1, then one block of memory is allocated to store all of the node_nsources additional arrays.

mesh_nsources

mesh_acells

number of elemental cell fields??

maximum number of cells (elements)

nr8b

ni4b4

size of the r8 buffer (array) - this should be at least as large as the maximum number of points in a "node", since it must be able to hold an entire field.

size of i4 buffer



Example file:

1 ! # template PQ4-E  ALLOCATION
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
0 0 ! node mesh
0 !nodoc
1 2 53 51 0 0 0 5 0 0
0 !nodoc
9 12345 ! skip next if not right template check
1 ! nsources ? E 
 1 1 0 1 1 0 1 1 1 1
 1 1 0 1 0 0 1 0 0 0
 0 0 0 0 1 0 0 0 0 0
 0 0 1 1 0 0 0 1 0 0
 1 1 1 0 0 0 0 0 0 1
 0 1 0 0 0 0 0 0 0 0
0 0 !6  60000 ! msource me ! this may be alteratively done in Smeshes
3000 500 ! # r8 buffer i4 buffer
2 ! # template PQ4-E-G  ALLOCATION
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
0 0 ! node mesh
0 !nodoc
1 2 53 51 0 0 0 5 0 0
0 !nodoc
9 34523 ! skip next if not right template check
1 ! nsources ? E 
 1 1 0 1 1 0 1 1 1 1
 1 1 0 1 0 0 1 0 0 0
 0 0 0 0 1 0 0 0 0 0
 0 0 1 1 0 0 0 1 0 0
 1 1 1 0 0 0 0 0 0 1
 0 1 0 0 0 0 0 0 0 0
0 0 !6  60000 ! msource me ! this may be alteratively done in Smeshes
500 500 ! # r8 buffer i4 buffer
3 ! # template L or matrix node allocation
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
0 0 ! node mesh
0 !nodoc
1 2 961 11 0 0 0 5 0 1 ! a node matrix 12x80x80 on 8 procs
0 !nodoc
9 34578 ! skip next if not right template check
8 ! nsources ? L 
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 0 0 0
0 0 !6  60000 ! msource me ! this may be alteratively done in Smeshes
500 500 ! # r8 buffer i4 buffer
102 ! # template  (TRANSFER) matrix node allocation
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
0 0 ! node mesh
0 !nodoc
1 2 0 0 0 32000 0 5 0 1 ! a node matrix 12x80x80 on 8 procs
0 !nodoc
9 34578 ! skip next if not right template check
4 ! nsources ? L 
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 0 0 0
0 0 !6  60000 ! msource me ! this may be alteratively done in Smeshes
40000 500 ! # r8 buffer i4 buffer
10 ! # template  local node allocation
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
0 0 ! node mesh
0 !nodoc
1 2 0 0 0 20 0 0 0 1 ! a local node matrix 
0 !nodoc
9 34578 ! skip next if not right template check
26 ! nsources ? see your favorite patchwork : e.g. moz.AIM2s.S.FADP.0.f 
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 0 0 0
6 1 !6  60000 ! msource me ! this may be alteratively done in Smeshes
0 0 ! # r8 buffer i4 buffer
11 ! # template  integration node
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
0 0 ! node mesh
0 !nodoc
1 2 0 0 0 20000 0 2 0 1 ! 
0 !nodoc
9 34578 ! skip next if not right template check
1 ! nsources ? L 
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 0 0 0
0 0 !6  60000 ! msource me ! this may be alteratively done in Smeshes
0 0 ! # r8 buffer i4 buffer
0 ! end template