Serialized Form
Package spis.Surf.SurfMesh |
geom
Geom geom
- geometry of the space this mesh
lives in
vm
VolMesh vm
- pointer to the Volume Mesh, of which
SurfMesh is the boundary
vm
ThreeDUnstructVolMesh vm
- volume mesh
surfNb
int surfNb
- surface (triangle) number
edgeNb
int edgeNb
- edge number
nodeNb
int nodeNb
- node (points) number
surfEdge
int[][] surfEdge
- edges of a surface (int[SurfNb][3])
surfNode
int[][] surfNode
- nodes of a surface (int[SurfNb][3])
edgeNode
int[][] edgeNode
- nodes of an edge (int[EdgeNb][2])
edgeSurf
int[][] edgeSurf
- surfaces on both sides of an edge (int[edgeNb][2])
order is meaningless, negative value if
out of mesh
surfFlag
int[] surfFlag
- surface flag (int[surfNb]) to tag thin surfaces. :
- lowest weight bit (bit 0): = 0
- next bit: 0 = regular surface
1 = thin surface
hence:
- surfFlag=0 if a regular surface
- surfFlag=2 if not
surfIndex
int[] surfIndex
- index of the surface in the numbering
of the volume mesh this surface
mesh is the boundary of
surfIndexS2
int[] surfIndexS2
- if a thin surface (surfFlag = 2),
index of the opposite numbering surface (Side 2)
in the same local surface numbering
surfThickness
float[] surfThickness
- surface real physical thickness in case
it is considered as thin from the mesh
viewpoint (thickness not meshed,
surfFlag = 2)
edgeFlag
int[] edgeFlag
- edge flag (int[edgeNb]) to tag thin
surface (2D) and thin wires (1D):
- bit 0: 0 = edge of a surface
1 = not a real edge but a wire
- bit 1: 0 = edge of a regular surface
1 = edge of a thin surface
hence: - edgeFlag=0 if edge of a regular surface
- edgeFlag=1 if this edge is indeed a wire
- edgeFlag=2 if edge of a thin surface
- nodeFlag=3 is forbidden (bits 0 and 1 are exclusive)
edgeIndex
int[] edgeIndex
- index of the
edge in the VolMesh numbering
edgeIndexS2
int[] edgeIndexS2
- if a thin surface (edgeFlag = 2),
index of the opposite duplicated edge (Side 2)
in the same local surface numbering
edgeRadius
float[] edgeRadius
- wire real physical radius in case
this edge is indeed a wire
(wire cylinder not meshed)
nodeFlag
int[] nodeFlag
- node flag (int[nodeNb]) to tag thin
surface (2D) and thin wires (1D). :
- bit 0: 0 = node of a surface
1 = node of a wire-like edge
- bit 1: 0 = node of a regular surface
1 = node of a thin surface
hence:
- nodeFlag=0 if a node of a regular surface
- nodeFlag=1 if a node of a wire-like edge
- nodeFlag=2 if a node of a thin surface
- nodeFlag=3 is forbidden (bits 0 and 1 are exclusive)
nodeIndex
int[] nodeIndex
- index of the
node in the VolMesh numbering
nodeIndexS2
int[] nodeIndexS2
- if a thin surface (nodeFlag = 2),
index of the opposite duplicated node (Side 2)
in the same local surface numbering
xyz
float[][] xyz
- nodes coordinates (xyz[i][j] =
j-th coordinate of i-th node)
surfArea
float[] surfArea
- Surface area volume
edgeLength
float[] edgeLength
- Edge length
surfNormal
float[][] surfNormal
- Normal to a Surface (SurfNormal[i][j] = j-th
coordinate of i-th surface normal),
they point out of the volume,
(hence into the spacecraft)
volNodeRenumbered
boolean volNodeRenumbered
- Has the volume node renumbering be performed ?
(to internal numbering)
mapNS
Matrix mapNS
- Node to surface connectivity matrix
mapNSR
Matrix mapNSR
- mapNS row-normalised (sum_j Mij = 1)
mapNSC
Matrix mapNSC
- mapNS column-normalised (sum_j Mij = 1)
mapNSRT
Matrix mapNSRT
- transpose of mapNSR
mapNSCT
Matrix mapNSCT
- transpose of mapNSC
mapNE
Matrix mapNE
- Node to surface connectivity matrix, for nodes
and edges belonging to 1D wires only!
mapNER
Matrix mapNER
- mapNE row-normalised (sum_j Mij = 1)
mapNEC
Matrix mapNEC
- mapNE column-normalised (sum_j Mij = 1)
mapNERT
Matrix mapNERT
- transpose of mapNER
mapNECT
Matrix mapNECT
- transpose of mapNEC
Package spis.Surf.SurfField |
val
FloatScalTable val
- Field values
curBuf
ScalSurfField curBuf
- buffer field (to avoid permanent
memory allocation-deallocation)
sm
SurfMesh sm
- Surface Mesh on which the field "lives"
cent
Centring cent
- centring of the field (values on
cells/surfaces/edges/nodes)
name
java.lang.String name
- Name of the filed (mostly used for post-
processing since the name is carried by
the variable in the solver, hence non
mandatory field internally to NUM)
time
float time
- Time at which this field has been generated
(mostly used for post-processing, hence non
mandatory field internally to NUM)
val
VectTable val
- Field values
val
float[] val
- table scalar values
val
int[] val
- table scalar values
dim
int dim
- logical dimension of the table (if stored
as an array it is the size of the table
effectively filled (which may be less
than the the array size), if it is stored
as a uniform constant, it is the size
of the table it represents
val
float[][] val
- table vector values (val[i][j] is
j-th coordinate of i-th vector,
table size is [length][dim])
vectDim
int vectDim
- dimension each vector
geom
Geom geom
- pointer to the geometry defining
the vector meaning
Package spis.Util.Monitor |
vm
VolMesh vm
- volume mesh this trajectoris lives in
posT
SpaceVectTable posT
- trajectory positions
timeT
FloatScalTable timeT
- time table (time of each position
pointNb
int pointNb
- point number on the trajevtory
index
int index
- trajectory index (can be the order index
but can also be used to store
particle type, start surface...)
name
java.lang.String name
- Trajectory name or description
xT
FloatScalTable xT
- x data (usually time)
yT
FloatScalTable yT
- y data (usually physical value)
name
java.lang.String name
- name of this data
dataNb
int dataNb
- number of stored data
xT
FloatScalTable xT
- x data (usually time)
yT
FloatScalTable yT
- y data (usually a scannig parameter,
e.g. RPA bias potential)
zT
FloatScalTable zT
- y data (usually physical value)
name
java.lang.String name
- name of this data
dataNb
int dataNb
- number of stored data
Package spis.Vol.VolField |
val
VectTable val
- Field values (the type of the actual object shall be either
SpaceVectTable or VeloVectTable)
pot
ScalVolField pot
- potential values
val
FloatScalTable val
- Field values
vm
VolMesh vm
- Volume Mesh on which the field "lives"
cent
Centring cent
- centring of the field (values on
cells/surfaces/edges/nodes)
name
java.lang.String name
- Name of the filed (mostly used for post-
processing since the name is carried by
the variable in the solver, hence non
mandatory field internally to NUM)
time
float time
- Time at which this field has been generated
(mostly used for post-processing, hence non
mandatory field internally to NUM)
geom
Geom geom
- pointer to the space geometry definition
(to get the space dimension
absDim
int absDim
- absolute dimension of centring elements
(3=3D elements, 2=2D ...)
relDim
int relDim
- relative dimension of centring elements (going down):
0=volumes, -1=surfaces... (even for surface
meshes where 0 cannot be met thus)
but in 2D, volumes relDim is 2
bsm
ThreeDUnstructSurfMesh bsm
- pointer to the 3D untructured surface mesh,
external boundary of the simulation box
(not a physical surface)
scsm
ThreeDUnstructSurfMesh scsm
- pointer to the 3D untructured spacecraft
surface mesh, (a physical surface)
cellNb
int cellNb
- cell (tetrahedra) number
surfNb
int surfNb
- surface (triangle) number
edgeNb
int edgeNb
- edge number
nodeNb
int nodeNb
- node (points) number
cellSurf
int[][] cellSurf
- pointers (indices) to the surfaces
surrounding a cell (int[cellNb][4]).
The surf cellSurf[n][s] must be opposite
the node cellNode[n][s].
cellEdge
int[][] cellEdge
- edges of a cell (int[cellNb][6])
cellNode
int[][] cellNode
- nodes of a cell (int[cellNb][4]).
the surf cellSurf[n][s] must be opposite
the node cellNode[n][s]
surfEdge
int[][] surfEdge
- edges of a surface (int[surfNb][3])
surfNode
int[][] surfNode
- nodes of a surface (int[surfNb][3])
edgeNode
int[][] edgeNode
- nodes of an edge (int[edgeNb][2])
surfCell
int[][] surfCell
- cells around a surface (int[surfNb][2])
(negative value if out of mesh)
surfFlag
int[] surfFlag
- surface flag (int[surfNb]) to tag special surfaces. :
- lowest weight bit: 0 = not a spacecraft surface
(bit 0) 1 = on a spacecraft surface
- next bit: 0 = not a thin surface
(bit 1) 1 = it is a thin surface
(meaningful only if bit 0 = 1)
- bit 2: = 0
- bit 3: 0 = not a mesh boundary surface
1 = it is a mesh boundary surface
next bits may be used (transiently) to tag
special surfaces for monitoring, as current computation
through a virtual instrument...
hence:
- surfFlag=0 if a non-physical face between tetrahedra
- surfFlag=1 if regular physical surface
- surfFlag=3 if a thin physical surface
- surfFlag=8 if a boundary surface
surfIndexSC
int[] surfIndexSC
- for a surface of the spacecraft SurfMesh
(bit 0 of surfFlag = 1),
index of the surface
in the SC SurfMesh numbering
surfIndexB
int[] surfIndexB
- for a surface of the boundary SurfMesh
(bit 3 of surfFlag = 1),
index of the surface in the
boundary SurfMesh numbering
edgeFlag
int[] edgeFlag
- edge flag (int[edgeNb]) to tag special edges. :
- bit 0: 0 = not on a spacrecraft surface
1 = on a spacecraft surface
- bit 1: 0 = not on a thin SC surface
1 = on a thin SC surface
(meaningful only if bit 0 = 1)
- bit 2: 0 = not a wire-like boom
1 = wire-like boom (1D physical surface)
(meaningful only if 1st bit = 1 and 2nd bit = 0)
- bit 3: 0 = not a mesh boundary edge
1 = it is a mesh boundary edge
next bits may be used (transiently) to tag
special edges for monitoring...
hence:
- edgeFlag=0 if a non-physical edge in volume
- edgeFlag=1 if a regular physical edge on a SC surface
- edgeFlag=3 if an edge of a thin physical SC surface
- edgeFlag=5 if a wire-like element (1D physical surface)
- edgeFlag=8 if a boundary edge
- edgeFlag=9 if both a SC edge
and a boundary edge
- edgeFlag=11 if an edge of a thin SC surface
and a boundary edge
edgeIndexSC
int[] edgeIndexSC
- for an edge of the spacecraft SurfMesh
(first bit of edgeFlag = 1),
index of the edge
in the SC SurfMesh numbering
edgeIndexB
int[] edgeIndexB
- for an edge of the boundary SurfMesh
(fourth bit of edgeFlag = 1),
index of the edge in the
boundary SurfMesh numbering
nodeFlag
int[] nodeFlag
- node flag (int[nodeNb]) to tag special nodes. :
- bit 0: 0 = not on a spacrecraft surface
1 = on a spacecraft surface
- bit 1: 0 = not on a thin SC surface
1 = on a thin SC surface
(meaningful only if bit 0 = 1)
- bit 2: 0 = not a node of a wire-like boom
1 = node of a wire-like boom (1D physical surface)
(meaningful only if 1st bit = 1 and 2nd bit = 0)
- bit 3: 0 = not a mesh boundary node
1 = it is a mesh boundary node
next bits may be used (transiently) to tag
special nodes for monitoring...
hence:
- nodeFlag=0 if a non-physical node in volume
- nodeFlag=1 if a regular physical node on a SC surface
- nodeFlag=3 if a node of a thin physical SC surface
- edgeFlag=5 if a node of wire-like element
- nodeFlag=8 if a boundary node
- nodeFlag=9 if both a SC node
and a boundary node
- nodeFlag=11 if a node of a thin SC surface
and a boundary node
nodeIndexSC
int[] nodeIndexSC
- for a node of the spacecraft SurfMesh
(first bit of nodeFlag = 1),
index of the node
in the SC SurfMesh numbering
nodeIndexB
int[] nodeIndexB
- for a node of the boundary SurfMesh
(third bit of nodeFlag = 1),
index of the node in the
boundary SurfMesh numbering
xyz
float[][] xyz
- nodes coordinates (xyz[i][j] =
j-th coordinate of i-th node)
cellVol
float[] cellVol
- Cell volume
surfArea
float[] surfArea
- Surface area
edgeLength
float[] edgeLength
- Edge length
nodeVol
float[] nodeVol
- Can be viewed by physicists as the
'effective' volume surrounding a node,
which allows to compute the density from
the particle number obtained by PIC
charge deposit (numericians would rather
call it the lumped mass matrix)
surfNormal
float[][] surfNormal
- Normal to a Surface (SurfNormal[i][j] = j-th
coordinate of i-th surface normal).
The normal points into the second cell
referenced in surfCell, surCell[][1]
toBarCo
float[][][] toBarCo
- Matrices to get the barycentric
coordinates ([cellNb][3][3]):
{l2,l3,l4} = toBarCo[cellId][][].{x-x1,y-y1,z-z1},
with l1 = 1 - l2 - l3 - l4
nodeRenumbering
boolean nodeRenumbering
- Is node renumbering on ?
internNum
int[] internNum
- internal numbering, dimensionned
only if nodeRenumbering = true
(internNum[externalId] = internalId)
externNum
int[] externNum
- external numbering, dimensionned
only if nodeRenumbering = true
(externNum[internalId] = externalId)
bufferNodeArrayI
int[] bufferNodeArrayI
- buffer used to renumber node quantities
on the spot (it is stored as object
variable to avoid intensive memory
re-allocation)
bufferNodeArrayF
float[] bufferNodeArrayF
- buffer used to renumber node quantities
on the spot (it is stored as object
variable to avoid intensive memory
re-allocation)
geom
Geom geom
- geometry of the space this mesh
lives in
bsm
SurfMesh bsm
- pointer to Surface Mesh, external
boundary of the simulation box
(not a physical surface)
scsm
SurfMesh scsm
- pointer to spacecraft Surface Mesh,
(a physical surface)
name
java.lang.String name
- Name of the parameter (reserved keyword,
that will be reckognized by the solvers)
type
java.lang.String type
- Type of the parameter (for now, should
be limited to one of Integer, Float,
or String)
value
java.lang.Object value
- Value of the parameter
unit
java.lang.String unit
- Unit of that parameter
comment
java.lang.String comment
- Comment on that parameter
diagVal
float[] diagVal
- matrix values
val
float[][] val
- matrix values
dim1
int dim1
- first matrix dimension
dim2
int dim2
- second matrix dimension
val
float[] val
- non zero values of the matrix
col
int[] col
- column index of non zero values
p
int[] p
- pointer to each row start:
val[p[i]] is the first value of row i
and col[p[i]] is its column index.
Package spis.Util.Exception |