|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectspis.Surf.SurfMesh.SurfMesh
spis.Surf.SurfMesh.UnstructSurfMesh
spis.Surf.SurfMesh.ThreeDUnstructSurfMesh
Class Name : ThreeDUnstructSurfMesh (generic Surface Mesh class)
Project ref : SPIS project
File name : ThreeDUnstructSurfMesh.java
File type : class
Copyright : ONERA, 2 Av. E. Belin, 31055 Toulouse cedex, France
http://www.onecert.fr
Status : under development
Creation : 25/08/2003
Modification :
Description : 3-dimensional Unstructured Surface Mesh class (triangles only)
Specificities and constraints:
- thin surfaces, i.e. whose both sides are physical (e.g. a solar array)
must be duplicated and tagged
- the i-th surfNode of a surf must be "opposite" the i-th surfEdge
(i-th node does not belong to the i-th edge)
Versions and anomalies correction :
Version number | Author (name, e-mail) | Corrections/Modifications |
0.1 | JF Roussel, roussel@onecert.fr | Creation |
Constructor Summary | |
ThreeDUnstructSurfMesh(Geom geometry,
ThreeDUnstructVolMesh volMesh,
int surfNbr,
int edgeNbr,
int nodeNbr,
int[][] surfEdges,
int[][] surfNodes,
int[][] edgeNodes,
int[] surfFlags,
int[] surfIndices,
int[] surfIndicesS2,
float[] surfThicknesses,
int[] edgeFlags,
int[] edgeIndices,
int[] edgeIndicesS2,
float[] edgeRadiuses,
int[] nodeFlags,
int[] nodeIndices,
int[] nodeIndicesS2,
float[][] xyzCoord)
Main constructor with basic sufficient data provided. |
Method Summary | |
void |
advance(PartList pl,
VectTable dx)
Advances the particles of particle list pl from their current position to their next position, defined by the shift vector dx. |
float[] |
applyScalFunction(Centring centring,
ScalFunctionOfVect f)
Applies a function of the position to the nodes (or surfaces/cells... depending on centring), and returns the result (f(xi,yi,zi)) as a float array. |
float[][] |
applyVectFunction(Centring centring,
VectFunctionOfVect f)
Applies a vectorial function of the position to the nodes (or surfaces/cells... depending on centring), and returns the result (f(xi,yi,zi)) as a float[i][] array. |
VectSurfField |
buildSurfCentre()
Builds and returns the table of the surface centre coordinates as a surface-centred VectSurfField |
ScalSurfField[][] |
computeNeighbouringData()
Computes and returns data characterising neighbour cells of a cell (needed for surface conductivity). |
void |
currentDeposit(PartList pl,
ScalSurfField cur)
Performs the deposit of charges of the particle list pl in the current cur. |
void |
deposit(PartList pl,
ScalSurfField current,
int charge,
int mass)
Performs the deposit of charges of the particle list pl in the ScalSurfField current (current is incremented, reset it before if you want to start from 0). |
int[] |
getEdgeFlag()
|
ScalSurfField |
getEdgeLength()
Returns length of edges |
float[] |
getEdgeRadius()
Returns real radius of thin wires |
int |
getElNb(Centring centring)
Returns the number of elements of dimension dim of a given centring |
int |
getElNb(int relDim)
Returns the number of elements of relative dimension relDim |
VectSurfField |
getNodeCoord()
Returns the table of the nodes/points coordinates as node-centred VectSurfField |
int[] |
getNodeIndex()
Returns nodeIndex, i.e. index of the nodes in the VolMesh numbering |
ScalSurfField |
getSurfArea()
returns surface areas as a ScalSurfField |
int[] |
getSurfIndex()
Returns surfIndex, i.e.index of the surface in the numbering of the volume mesh |
int[][] |
getSurfNode()
Returns the table of the nodes/points of each surface as an int[][]. |
VectSurfField |
getSurfNormal()
returns normals to mesh surfaces as a VectSurfField |
float[] |
getSurfThickness()
Returns real thickness of thin plates |
void |
initialise()
Performs extra mesh initialisations. |
void |
interpolate(PointList pl,
SurfField sf,
Table val)
Interpolates the surface field sf (defined on the mesh nodes/cells/...) |
boolean |
isVolNodeRenumbered()
|
void |
mapField(ScalSurfField fin,
ScalSurfField fout,
int flag)
Maps surface fields of different centering into one another (fin into fout). |
void |
rebuildIndexTables(int[] surfIndexV,
int[] edgeIndexV,
int[] nodeIndexV,
int[] surfFlagV,
int[] edgeFlagV,
int[] nodeFlagV,
int flagMask)
Obsolete, no longer used. |
void |
samplePos(IntScalTable indexT,
SpaceVectTable posT)
Performs a random sampling of particle positions. |
void |
setSurfArea(float[] surfArea)
|
void |
setVm(ThreeDUnstructVolMesh volMesh)
sets volume mesh (pointer, no copy), and orients the surface normals of the surface mesh coming out out of the volume mesh (the order of the surface nodes is modified accordingly). |
void |
setVolInternNodeNumbering(int[] internNum)
Updates pointers to volume nodes (nodeIndex and nodeIndex2) when volume nodes are renumbered (checks it is not done a second time). |
void |
setVolNodeRenumbered(boolean b)
|
Methods inherited from class spis.Surf.SurfMesh.SurfMesh |
checkIsOnThisMesh, getGeom, getVm, setVm |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ThreeDUnstructSurfMesh(Geom geometry, ThreeDUnstructVolMesh volMesh, int surfNbr, int edgeNbr, int nodeNbr, int[][] surfEdges, int[][] surfNodes, int[][] edgeNodes, int[] surfFlags, int[] surfIndices, int[] surfIndicesS2, float[] surfThicknesses, int[] edgeFlags, int[] edgeIndices, int[] edgeIndicesS2, float[] edgeRadiuses, int[] nodeFlags, int[] nodeIndices, int[] nodeIndicesS2, float[][] xyzCoord)
Method Detail |
public void initialise()
public void rebuildIndexTables(int[] surfIndexV, int[] edgeIndexV, int[] nodeIndexV, int[] surfFlagV, int[] edgeFlagV, int[] nodeFlagV, int flagMask)
public void currentDeposit(PartList pl, ScalSurfField cur)
currentDeposit
in class SurfMesh
public void deposit(PartList pl, ScalSurfField current, int charge, int mass)
deposit
in class SurfMesh
public void advance(PartList pl, VectTable dx)
advance
in class SurfMesh
pl
- List of particles to be advanceddx
- Shift vectors for particlespublic void interpolate(PointList pl, SurfField sf, Table val)
interpolate
in class SurfMesh
pl
- Point list at which interpolation is requested (input)sf
- Surface Field to be interpolatedval
- Table with interpolated valuespublic void mapField(ScalSurfField fin, ScalSurfField fout, int flag)
mapField
in class SurfMesh
public ScalSurfField[][] computeNeighbouringData()
computeNeighbouringData
in class SurfMesh
public void setVolInternNodeNumbering(int[] internNum)
public float[] applyScalFunction(Centring centring, ScalFunctionOfVect f)
applyScalFunction
in class SurfMesh
public float[][] applyVectFunction(Centring centring, VectFunctionOfVect f)
applyVectFunction
in class SurfMesh
public void samplePos(IntScalTable indexT, SpaceVectTable posT)
samplePos
in class SurfMesh
indexT
- surface index of each particle (input)posT
- position of each particle (output)public int getElNb(Centring centring)
getElNb
in class SurfMesh
public int getElNb(int relDim)
getElNb
in class SurfMesh
public VectSurfField getSurfNormal()
getSurfNormal
in class SurfMesh
public ScalSurfField getSurfArea()
getSurfArea
in class SurfMesh
public ScalSurfField getEdgeLength()
SurfMesh
getEdgeLength
in class SurfMesh
public VectSurfField getNodeCoord()
public VectSurfField buildSurfCentre()
public int[][] getSurfNode()
public int[] getSurfIndex()
public int[] getNodeIndex()
public void setVm(ThreeDUnstructVolMesh volMesh)
public boolean isVolNodeRenumbered()
public void setVolNodeRenumbered(boolean b)
b
- declare if node renumbering is on (defined by CutHill McKee renumbering)public float[] getEdgeRadius()
SurfMesh
getEdgeRadius
in class SurfMesh
public float[] getSurfThickness()
SurfMesh
getSurfThickness
in class SurfMesh
public int[] getEdgeFlag()
getEdgeFlag
in class SurfMesh
public void setSurfArea(float[] surfArea)
surfArea
- The surfArea to set.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |