Ants developer manual

From Kraken Wiki
Jump to: navigation, search

Geometry and indexing

Ants calculation mesh is determined by input cards

  • (core width_x, core width_y) or (core width_xy), core axial_nodes, core axial_heights, core division_x, core division_y, core division_z, core columns, core rows, and fuel load for rectangular geometry
  • core width_xy, core axial_nodes, core axial_heights, core division_z, core columns, core rows, and fuel load for hexagonal geometry
  • core width_xy, core axial_nodes, core axial_heights, core division_hex, core division_z, core columns, core rows, and fuel load for triangular geometry

Number of input nodes is determined by core axial_nodes, core columns, core rows and fuel load. The sizes of input nodes are determined by core width_x, core width_y, core width_xy and core axial_heights. The number and sizes of the calculation nodes can be changed using core division_x, core division_y, core division_hex and core division_z.

Super nodes

The input nodes are called super nodes in the program code. The super nodes (input nodes) can be subdivided into smaller nodes (calculation nodes). In fuel load card, positions marked with "0" are not included in the calculation mesh. The super node coordinates begin from the lowest axial level and lowest left non-"0" value. The first node is (1,1,1) in (x,y,z) coordinates, and the x increases to left and y increases from input row to input row. In hexagonal input geometry in fuel load card the x=1 goes in the 120 degree direction from the positive x axis. The z coordinate increases from layer to layer. The super node indexing increases fastest in the x coordinate, second fastest in the y coordinate and slowest in the z coordinate.

Indexing in a single axial layer of a rectangular mesh.
Indexing in a single axial layer of a hexagonal mesh. In Ants program code, the i and j in this figure are called x and y.

The input fuel load map is indexed in e.g. the "ind_*_to_orig_x", "ind_*_to_orig_y" and "ind_*_to_orig_z" index arrays in the program code.

The input non-"0" nodes are called real super nodes. There is also another (x,y,z) indexing where there are one layer of boundary super nodes added in all x, y, radial hex or z directions. These are indexed in e.g. the "ind_*_to_x", "ind_*_to_y" and "ind_*_to_z" index arrays in the program code. Whereas only the input nodes are indexes in the real super node indexes, non-calculation boundary nodes are included in the all super node indexes together with the input nodes. The real and all super node indexes are the same for the real super nodes. The boundary node indexes begin from the number of real super nodes + 1, and are again indexes from the bottom z level leftmost corner. The sizes of the non-orig-(x,y,z) index arrays are +2 in all coordinates. The fuel super nodes are indexes only for the input super nodes marked to be fuel.

Nodes

The calculation nodes are called just nodes in the program code. The calculation nodes are indexes similar to the super nodes, but the divisions of the super nodes to the calculation nodes are indexed fastest. E.g. with core division_x 2 and core division_y 2 in rectangular geometry, the real nodes 1...4 are in super node 1, and 5...8 in super node 2. The node indexes again run fastest in the x coordinate, then y coordinate and then z coordinate. In triangular geometry, the node indexes run fastest in the radial hex coordinate and then in z coordinate inside a super node.

Indexing of one axial layer of nodes in a divided rectangular super node. The axial direction division (core division_z) begins from the lowest z, and the final node index is obtained by adding (z-1)*(core division_x)*(core_division_y) to the indexing presented in this figure, where z runs from 1 to core division_z.

Division cards

The core division_x and core division_y divide the rectangular geometry super nodes into respective calculation nodes in the radial plane (x and y directions). These numbers have to be divisible by 2.

The core division_hex divide the triangular geometry super node (which is a hexagon) into respective calculation nodes in the radial plane. The number indicates the number of triangles in one hexagon, i.e. the number has to be 6 or divisible by 4 after divided by 6.

The core division_z divides the super nodes into respective calculation nodes in the axial direction. It can be used in all geometries.

The number of calculation nodes per super node is given by

  • core division_x*core division_y*core division_z in rectangular geometry
  • core division_z in hexagonal geometry
  • core division_hex*core division_z in triangular geometry

Direcrions

Triangular geometry model radial directions for the hexagonal super node and the two types of triangle nodes.