Input file: Smeshes.i

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

Function: The input file Smeshes.i is a plain text file which defines a number of templates for different types of meshes (see Glossary for definition of "mesh" in the context of Mozart). These definitions are used by Mozart to allocate memory for the mesh. Smeshes.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 mesh 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

Processor mode number

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

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 mesh_allocation will use the value of node_j which was passed as an argument when mesh_allocation was called.

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

mesh_ndim

mesh_nx

mesh_ny

mesh_nz

mesh_nextra

mesh_type

mesh_structured

mesh_unstructured

mesh_ncells













mesh_cell_nnodes

mesh_with_midnodes

mesh_nnodes

mesh_refinement_type

mesh_achildpcell

mesh_boundary_type

mesh_periodic_type

dimensions of the mesh

number of elements in the mesh, in the x dimension

number of elements in the mesh, in the y dimension

number of elements in the mesh, in the z dimension

number of extra elements in a node

type of mesh; 1 = tensor product

type of structured mesh; 1 = tensor product quad grid

type of unstructured mesh

number of actual cells in mesh [NOTE: Philippe says: "I tend to use 0 here if I can compute the connectivity analytically. It doesn't mean that there will be no mesh fields on the mesh because if I want to say that I don't want connectivity but I still want meshes, I will use mesh_acells, the maximum number of elements, to play with for the definition of fields. So I repeat that: Suppose I have a tensor product grid. By convention I say the number of cells is... what is it here, 1 or 0, I can't remember... the number following "unstructured" is 1, correct - so that's a 1. And it means that I need just one cell for connectivity, I don't need to define connectivity, I can compute that. But if I want to allocate fields, I use mesh_acells. And mesh_acells is the sum of mesh_nx*mesh_ny + mesh_nextra. So, if we summarize in here, mesh_nx is defined, mesh_ny is defined, that's all we need to compute things. mesh_ncells is 1, mesh_acells is not 1 and is 52*50 plus zero. And this size is the size I will use if I need to allocate fields, as we are going to see."]

number of nodes (points??) per cell to define connectivity

1 = mesh will have midnodes

number of points in mesh

method of refinement

average number of children per cell (used when refining mesh)

type of boundary that mesh has (?)

how you want to equivalence nodes in the mesh (how you want to "glue" nodes in this mesh to other nodes)


idoc

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

[idoc lines of documentation]


nmif

nunit

number of fields you want to allocate

number of elements in a field (?); if nunit=0 then use default value, which is mesh_acells

idoc

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

[idoc lines of documentation]


a set of integers (nmif of them) corresponding to the fields of the mesh

if the n'th integer is 0, then memory for the corresponding field is not allocated

if the n'th integer > 0, then allocate that number*nunit elements for the corresponding field





Example file:

1 ! # template PQ4-E  MESH
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
1 1 ! node mesh
0 !nodoc
2 52 50 0 0 1 1 0 1 4 0 0 0 0 0 0
0 !nodoc
21 0 ! nmif =# total field number nunit=size of one unit (if 0 use mesh_acells)
5 !doc
<doc>
ic edg processed efield(r8) elist level childmap color(r8)
midcon r8:< edot area viscosity vx vy vz x y z f >
iconb r8:sources(matrix format)
</doc>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
2 ! # template PQ4-E-G  MESH
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
2 2 ! node mesh
0 !nodoc
2 52 50 0 0 1 1 0 1 4 0 0 0 0 0 0
0 !nodoc
21 0 ! nmif =# total field number nunit=size of one unit (if 0 use mesh_acells)
5 !doc
<doc>
ic edg processed efield(r8) elist level childmap color(r8)
midcon r8:< edot area viscosity vx vy vz x y z f >
iconb r8:sources(matrix format)
</doc>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
3 ! # template L  MESH
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
3 3 ! node mesh
0 !nodoc
2 1 1 0 0 1 1 0 1 4 0 0 0 0 0 0
0 !nodoc
21 0 ! nmif =# total field number nunit=size of one unit (if 0 use mesh_acells)
5 !doc
<doc>
ic edg processed efield(r8) elist level childmap color(r8)
midcon r8:< edot area viscosity vx vy vz x y z f >
iconb r8:sources(matrix format)
</doc>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
102 ! # template transfer  MESH
0 !nodoc
0 !nodoc
0 ! peer mode -->
0 !nodoc
2 2 ! node mesh
0 !nodoc
2 0 0 0 5000 1 1 0 1 4 0 0 0 0 0 0
0 !nodoc
21 0 ! nmif =# total field number nunit=size of one unit (if 0 use mesh_acells)
5 !doc
<doc>
ic edg processed efield(r8) elist level childmap color(r8)
midcon r8:< edot area viscosity vx vy vz x y z f >
iconb r8:sources(matrix format)
</doc>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 ! end template