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