StGermain Component Codex
This is a list of components available in StGermain.
Location:
./StGermain/Base/Context/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
From a software architecture point of view, plugins are a flexible way of adding runtime-configurable extensions to a core application. AbstractContext is standardised interface for StGermain to manage plugins.
It is a crucial, low-level component of the framework because it establishes and maintains interconnections between other Codes and their high-level features.
AbstractContext contains Entrypoints, sites where it expects plugins will be added. These plugins insert algorithms or alter the control flow. An entrypoint is a dynamically changeable array of function pointers, which get executed sequentially. Entrypoints can be coarse-grained (“the mesh”, “the solve phase”) or fine-grained (“each particle”, “updating the stress of each particle”).
AbstractContext is the first component to start. Other components can be inserted after the live component register is attached. This is accomplished by inserting hooks at the activation site of each point of control flow of AbstractContext. Hooks are function pointers and reside in an array at the entrypoint. You can dynamically rearrange the array to set the order in which the functions run.
AbstractContext goes through a setup phase before proceeding to its run phase. During setup, it goes through build and then initialise function calls. Each step contains entry point, and a hook is positioned there to attach each function call. Following the setup phase, AbstractContext enters the Run phase. It encapsulates timing, stepping through iterations to solve the equation, and collating and saving output.
Checkpoints are places where states of variables are saved.
When using checkpoints, identify which variables to checkpoint and specify the frequency (the number of timesteps between checkpoint event).
You may want to restart from last checkpoint to:
modify parameters at a moment and run from there rather than re-calculating the all timesteps
save the state before a scheduled interruption, or for when time-sharing processor/memory resources where a modelling job may take weeks in total to run
save current state if you think it may be a useful point to rollback to, or to resume from after an unscheduled interruption
skip the setup process for frequently performed tasks to save time.
For more information on checkpointing, see the wiki.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Defines a cosine shape, with the region less than the function included
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| offset | Double | 0.5 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
BlockGeometry assigns points in a regular arrangement over a defined area of a mesh. It assumes you are using a regular, Cartesian block in two or three dimensions.
To use BlockGeometry, pass it the coordinates of opposing corners of the block, and also the number of mesh points to include for each dimension.
In the nomenclature of BlockGeometry, the number of points along each axis is known as its size. In this context, size should not be confused with the difference between max values and min coordinates. For example, a block where the size is 4 high (sizeJ=4) would feature four nodes along the Y axis.
Use the component interface to set the values of sizeI, sizeJ and sizeK.
Conversely, BlockGeometry searches in the Root Directory for (minX, minY, minZ) and (maxX ,maxY, maxZ), so set those values in the Root Directory.
For a two-dimensional mesh, minX and minY coordinates refer to the bottom-left corner, while maxX and maxY refer to the top-right corner. Meanwhile, Z coordinates are set to 0 and ignored for a 2D BlockGeometry mesh.
The spaces between points along an axis of a BlockGeometry mesh are always equal. For example, the vertical distance between points = maxY–minY/sizeJ-1.
Example:
BlockGeometry
elementResI
elementResJ
elementResK
+1
IJK26Topology
elementResI
elementResJ
elementResK
ParallelPipedHexaEL
elementTopology
geometry
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
| sizeI | UnsignedInt | 1 | ... |
| sizeJ | UnsignedInt | 1 | ... |
| sizeK | UnsignedInt | 1 | ... |
| sizeShift | Int | 0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| startKey | Double | 0.0 | ... |
| endKey | Double | 0.0 | ... |
| widthKey | Double | 0.0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
CommTopology is a tool that helps to find and identify the neighbours of a processor. It is useful for hugely parallel operations, such as those distributed over thousands of processors.Typically, a processor only needs to communicate with adjacent processors. A global (one-to-all) operation is an example of a poorly designed operation because it calls for unnecessary communication beyond the scope of the processor's neighbourhood. In this situation, redesigning the operation and using CommTopology would be a more elegant design and lead to improved efficiency.
Back to top
Location:
./StGermain/Base/Automation/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| vcName | String | self->name | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Stg_Component | No | ... | Data |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
This function is designed so that a user can specify BC's at the corners of a region. See xml file: ../tests/data/CornerVC.xml
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| radius | Double | 0.0 | ... |
| startX | Double | -BIG | ... |
| startY | Double | -BIG | ... |
| startZ | Double | -BIG | ... |
| endX | Double | BIG | ... |
| endY | Double | BIG | ... |
| endZ | Double | BIG | ... |
| perpendicularAxis | String | "x" | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Decomp provides a mechanism for mapping between local and global indices. It does this by storing information on which processor owns each subset of indices. Decomp is necessary when handling data from multiple processors as each processor takes a local view of their indices rather than a global approach.
Decomp dynamically copes with indices being added to a decomposition.
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Decomp_sync is a subclass of Decomp and is a conduit for shifting data between processors.
Decomp_sync relies on the concept of Remote Indices, indices which are not owned by the local processor but which contain information that may be useful for Shadowing. Local and remote indices are combined into a domain set with no distinction made of their origins.
Decomp_Sync stores other useful information, such as which processor owns an index, and which processors are interested in an index or set of indices.
In an abstract sense, Decomp_sync deals in locations but it does not do any copying or transferring of data. This is functionality is left to other Codes. Similarly, Decomp_sync deals with indices and it doesn't matter that these indices can refer to nodes or other parts of a grid.
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Description:
Delaunay works on a set of 2D points. It uses the Constrained Delaunay Algorithm to generate a network between these points.Once that step is complete it generates a dual graph, a Voronoi Diagram, based on the Delaunay Triangulation.Delaunay can also generate a Convex Hull based on the set of points.This is a single-processor implementation of Delaunay. Use ParallelDelaunay on a multi-processor system for large data sets, speed-critical applications or where memory resources are limited.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
DofLayout (Degrees of Freedom Layout) prescribes how particular chunks of data are attached to specified parts a mesh. A mesh describes a divided domain, and you need to know where values lie in the domain when solving for a variable over the domain.
DofLayout maps between the spacial domain and one or more Variables. Briefly, a Variable is a block of memory which is indexed so it can be associated with part of a mesh. This can be a vertex, face or some other topological feature. See the StGermain component, Variable, for more information.
DofLayout refers to scalar variables only, not vectors, though a wrapper can be applied later to convert vectors.
Params
| Name | Type | Default | Description |
| Count | String | "" | ... |
| UnsignedInt( cf, self->name, "BaseVariableCount", Dictionary_Entry_Value_GetCount | | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Variable | True | ... | variableName |
Back to top
Location:
./StGermain/Base/Automation/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Mesh | True | ... | Mesh |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
| fieldComponentCount | UnsignedInt | 0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| filename | String | "Swarm.dat" | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Gauss particle layout, but with all particles on borders of cell (intended for use in evaluating boundary integral terms)
Params
| Name | Type | Default | Description |
| gaussParticles | UnsignedInt | 2 | This is the default value that will be used for 'gaussParticlesX', 'gaussParticlesY' and 'gaussParticlesZ'. |
| gaussParticlesX | UnsignedInt | gaussParticles | The number of gauss points laid out in the X direction |
| gaussParticlesY | UnsignedInt | gaussParticles | The number of gauss points laid out in the Y direction. |
| gaussParticlesZ | UnsignedInt | gaussParticles | The number of gauss points laid out in the Z direction. |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Lays out particles on points optimised for integrating over a cell. This layout also sets the particle weights as well. See here
Params
| Name | Type | Default | Description |
| gaussParticles | UnsignedInt | 2 | This is the default value that will be used for 'gaussParticlesX', 'gaussParticlesY' and 'gaussParticlesZ'. |
| gaussParticlesX | UnsignedInt | gaussParticles | The number of gauss points laid out in the X direction |
| gaussParticlesY | UnsignedInt | gaussParticles | The number of gauss points laid out in the Y direction. |
| gaussParticlesZ | UnsignedInt | gaussParticles | The number of gauss points laid out in the Z direction. |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Geometry sets the spatial location of every component in a mesh. It does this by operating on the geometry in terms of points, not higher-order elements such as faces. More complex shapes can be built-up later from these atomic points. Geometry defines position of each point during construction of a mesh. It uses (x, y, z) coordinates and works on a regular or irregular mesh.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Params
| Name | Type | Default | Description |
| base-mesh | String | NULL | ... |
| levels | UnsignedInt | 1 | ... |
| base-level | UnsignedInt | 0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Mesh | True | ... | meshName |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
| sizeI | UnsignedInt | 1 | ... |
| sizeJ | UnsignedInt | 1 | ... |
| sizeK | UnsignedInt | 1 | ... |
| isPeriodicI | Bool | False | ... |
| isPeriodicJ | Bool | False | ... |
| isPeriodicK | Bool | False | ... |
| sizeShift | Int | 0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Stg_Shape | True | ... | nameShape[1] |
| Stg_Shape | True | ... | nameShape |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
This lays equally spaced particles out on a continuous set of line segments.
Example:
LineParticleLayout
6
0.5 0.1 0.0
0.1 1.0 0.0
0.3 1.0 2.0
LineParticleLayout
6
0.5
0.1
0.0
0.1
1.0
0.0
0.3
1.0
2.0
Params
| Name | Type | Default | Description |
| totalInitialParticles | UnsignedInt | 2 | This is the total number of particles specified throughout the global domain. |
| verticies | list | Double | x, y, z | A list of verticies that define the line segments on which the particles will be distributed. |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
This lays out a particle in each of the positions manually specified in the dictionary.
Example:
ManualParticleLayout
0.5 0.1 0.0
0.1 1.0 0.0
0.3 1.0 2.0
ManualParticleLayout
0.5
0.1
0.0
0.1
1.0
0.0
0.3
1.0
2.0
Params
| Name | Type | Default | Description |
| manualParticlePositions | list | Double | x, y, z | A list of particle positions. |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Mesh is an abstraction that gives access to geometry and topology of a discretised domain. It describes how the space is split into discrete regions and not, for example, how data is stored in nodes. It can assist with functions acting on data such as searching, or locating a particle in the domain.
Mesh presents a consistent, high-level interface with many ways of entering information and one standardised means of output. It interfaces with other Codes and acts independently of the underlying structure of the mesh (a grid, triangles, etc). This lets it represent any shape of mesh or topology.
Mesh exhibits the common trade-off between memory utilisation and performance: more memory affords better performance. It also offers better performance on a regular grid.
Mesh is implicitly parallel. Some aspects may be local or global, but this is generally handled automatically.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| MeshLayout | True | ... | MeshLayout |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
A MeshAdaptor is a customisable component that can be inserted into the mesh generation pipeline. An Adaptor permits you modify the output from different types of mesh generators without modifying the code of a mesh generator. Conceptually, an adaptor can be viewed as a filter or an addition to the output stage.
MeshGenerator --> MeshAdaptor --> Mesh
Note that one or more MeshAdaptors may be inserted into the process, and there is no theoretical limit to the number of MeshAdaptors. In practise, using more than three or four MeshAdaptors may add a prohibitive overhead and could be grounds for optimisation by removing or combining adaptors.
This modular approach allows a small set of MeshAdaptors to be plugged-in in many combinations for a wide range of effects.
SurfaceAdaptor is an example of a MeshAdaptor. It allows you to modify the top surface without changing the underlying layers. Presently, it's the only MeshAdaptor, but it makes for a useful case study and other MeshAdaptors can be constructed in future.
Each MeshAdaptor is active on its local processor as part of that processor's pipeline. Generally, an even mesh decomposition will lead to processor-load being balanced and processors keeping in synch with their neighbours, but there is no restriction on how a MeshAdaptor can operate. Inserting additional steps where there are dependencies on other processors and pipelines can result in a pipeline stall. This may be the case if there is extensive interaction between processors, as in the following example:
Generating a Mesh with four processors and modifying it with two MeshAdaptors.
MeshGenerator1 --> MeshAdaptor1a --> MeshAdaptor1b --> Mesh1
MeshGenerator2 --> MeshAdaptor2a --> MeshAdaptor2b --> Mesh2
MeshGenerator3 --> MeshAdaptor3a --> MeshAdaptor3b --> Mesh3
MeshGenerator4 --> MeshAdaptor4a --> MeshAdaptor4b --> Mesh4
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
MeshGenerator is an internal mechanism for building a mesh of up to three dimensions. Later, the Mesh component may hold holds information.
MeshGenerator takes a list of meshes as its targets. It is an abstract class and gets inherited by other classes such as CartesianGenerator.
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Randomly distributes particles within cells.
Example:
RandomParticleLayout
20
2
Params
| Name | Type | Default | Description |
| cellParticleCount | UnsignedInt | 0 | The number of particles you want in each cell. |
| seed | UnsignedInt | 13 | The seed that you want to give the random number generator. The same seed will always give the same particle positions. |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Stg_Shape | True | ... | self->shapeName |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Description:
MeshTopology stores topological information about a mesh but manages no geometric information.MeshTopology is used when Shadowing. Shadowing is a process by which some data pertaining to a section of the mesh gets duplicated and assigned to a processor managing adjacent decomposition regions. Shadowing is managed automatically by MeshTopology and can be performed to a specified depth.No assumptions are made about how the data is stored. MeshTopology merely stores and indexes data as requested, per algorithmic demands.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| Operator | String | "" | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| Operator | String | "" | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| SwarmVariable | True | ... | swarmVariableName |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
This uses the SpaceFillerParticleLayout class to choose quasi-random particle positions and then projects them onto a plane
Example:
PlaneParticleLayout
6000
y
1.0
Params
| Name | Type | Default | Description |
| planeAxis | String | | This is the axis of the plane. i.e. Either 'X', 'Y', or 'Z' (case insensitive). |
| planeCoord | Double | 0.0 | This is the coordinate of the plane in the direction 'planeAxis'. |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Constructs a polygon shape, if dimension equals 2, or a prism shape, if dimension equals 3. A list of vertices is supplied and is used to construct the polgon face of the shape, if the simulation is 3D the length and orientation of the depth of the polygon can be customised.
Example:
./StGermain/Discretisation/Shape/src/testPolygonShape.xml
Params
| Name | Type | Default | Description |
| vertices | list | N/A | Vertices used to construct the polygon in 2D or prism base in 3D. Must be more than 3 vertices specified. |
| perpendicularAxis | char | z | The axis in which the polygon or prism base will be perpendicular to. Can choose from x,y,z. |
| startX | Double | 0.0 | Only used in 3-D. The starting depth of the prism, if the perpendicularAxis is set to x |
| endX | Double | 0.0 | Only used in 3-D. The starting depth of the prism, if the perpendicularAxis is set to x |
| startY | Double | 0.0 | Only used in 3-D. The starting depth of the prism, if the perpendicularAxis is set to y |
| endY | Double | 0.0 | Only used in 3-D. The starting depth of the prism, if the perpendicularAxis is set to y |
| startZ | Double | 0.0 | Only used in 3-D. The starting depth of the prism, if the perpendicularAxis is set to z |
| endZ | Double | 0.0 | Only used in 3-D. The starting depth of the prism, if the perpendicularAxis is set to z |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| Function | String | "0" | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Randomly distributes particles within cells.
Example:
RandomParticleLayout
20
2
Params
| Name | Type | Default | Description |
| cellParticleCount | UnsignedInt | 0 | The number of particles you want in each cell. |
| seed | UnsignedInt | 13 | The seed that you want to give the random number generator. The same seed will always give the same particle positions. |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
RefinedRegionsGeometry helps you use a refined geometry in regions of interest. It does this by adding more points, allowing you to decompose the mesh to a higher degree.
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
| sizeI | UnsignedInt | 1 | ... |
| sizeJ | UnsignedInt | 1 | ... |
| sizeK | UnsignedInt | 1 | ... |
| sizeShift | Int | 0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Copyright:
Copyright (C) 2004-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Description:
Remesher assists with rearranging a mesh into a more regular, ordered format. Giving a mesh a simplified form results in it being easier to deal with.
For example, Remesher is useful when a mesh has been advected to such an extent that it is no longer well-formed. A malformed mesh is slower to process and not as representative as a well-formed mesh.
Remesher is an abstract interface to classes, and therefore does not perform any remeshing. Other classes may be instructed to do the remeshing using a variety of remesheing methods.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
SemiRegDeform is a method for remeshing. It performs a semi-regular deformation.
To use it, pass SemiRegDeform a set of two points on the mesh you wish to deform. SemiRegDeform will construct a straight line between these points and evenly redistribute any nodes that lie along that line. When moving nodes, SemiRegDeform does a linear interpolation on the contents of those features to preserve the accuracy of their data.
Running SemiRegDeform on a large mesh is moderately time-consuming for a single-processor system, though the process is faster when parallelised. SemiRegDeform has been designed to automatically run in parallel, and although this process is non-trivial internally, the mechanism is accessible from the same simple interface.
Furthermore, you can remesh at a higher resolution by using more than one linear set of points. To do this, define a number of lines via the two-point interface. You can build-up a remeshing procedure with SemiRegDeform that works in two or three dimensions, and the order of operations is unimportant.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Base/Automation/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| TimeIntegrator | True | ... | TimeIntegrator |
| FieldVariable | True | ... | VelocityField |
| Stg_Shape | True | ... | Shape |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
ShellGeometry creates a regular mesh of points and distorts them into the shape of a cap on a sphere. This is useful when meshing the surface sphere of a large radius.
ShellGeometry requires information on the internal and external radius of the mesh. The minR and maxR parameters are analogous to the “floor” and “ceiling” of the mesh prior to its topology getting distorted to conform to the shape of a sphere. Likewise, the bounds of the shell along the two primary axes of the “flat” version of the grid are defined by points the minTheta to meshadaMaxTheta and minPhi to maxPhi. An important difference is that these points are spherical coordinates, given as angles of rotation from the axes.
ShellGeometry retrieves the minTheta, minPhi, minR, maxTheta, maxPhi and maxR parameters from the Root Directory.
Topological information is provided in the form of meshSizeI, meshSizeJ and meshSizeK. These set how many points lie along each axis – the number of “cuts” made to the mesh plus both edges. Use the component interface to set the values of sizeI, sizeJ and sizeK.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
StGermain/Discretisation/Geometry/src
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
| dimExistsI | Bool | True | ... |
| dimExistsJ | Bool | True | ... |
| Bool( cf, self->name, "dimExistsK", | | ... |
| minX | Double | -1.0 | ... |
| minY | Double | -1.0 | ... |
| minZ | Double | -1.0 | ... |
| maxX | Double | 1.0 | ... |
| maxY | Double | 1.0 | ... |
| maxZ | Double | 1.0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
This uses the SobolGenerator class to quasi-randomly fill particles throughout the whole global domain.
Example:
SpaceFillerParticleLayout
6000
SpaceFillerParticleLayout
20
Params
| Name | Type | Default | Description |
| averageInitialParticlesPerCell | UnsignedInt | SpaceFillerParticleLayout_Invalid | This is the average number of particles per cell. This number will be multiplied by the total number of cells to get the total inital particle number count. (If you use this parameter, you cannot set the 'totalInitialParticles' parameter as well). |
| totalInitialParticles | UnsignedInt | SpaceFillerParticleLayout_Invalid | This is the total number of particles that will be created to fill the global domain. (If you use this parameter, you cannot set the 'averageInitialParticlesPerCell' parameter as well). |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| radius | Double | 0.0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
| CentreX | Double | 0.0 | ... |
| CentreY | Double | 0.0 | ... |
| CentreZ | Double | 0.0 | ... |
| alpha | Double | 0.0 | ... |
| beta | Double | 0.0 | ... |
| gamma | Double | 0.0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| radiusX | Double | 1.0 | ... |
| radiusY | Double | 1.0 | ... |
| radiusZ | Double | 1.0 | ... |
| epsilon1 | Double | 1.0 | ... |
| epsilon2 | Double | 1.0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Mesh/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
SurfaceAdaptor is a type of MeshAdaptor. It allows you to selectively change the top surface of a mesh without altering the underlying layers.
SurfaceAdaptor is an example of a MeshAdaptor. It allows you to modify the top surface without changing the underlying layers. Presently, it's the only MeshAdaptor, but it makes for a useful case study and other MeshAdaptors can be constructed in future.
Questions: Is SurfaceAdaptor useful when dealing with conditions with highly stratified materials?
Where forces acting on material being modelled only affect the surface and don't penetrate the bulk of the material?
Useful as a quick approximation because you're interested only in examining the surface?
TODO: Does it stricktly deal with the top layer only, or can you set the depth to which the SurfaceAdaptor goes? This has implications for mesh deformation, level of detail, size of “cells” etc.
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
| ParticleType | String | IntegrationPoint | ... |
| cellParticleTblDelta | UnsignedInt | DEFAULT_CELL_PARTICLE_TBL_DELTA | ... |
| extraParticlesFactor | Double | DEFAULT_EXTRA_PARTICLES_FACTOR | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| CellLayout | True | ... | CellLayout |
| ParticleLayout | True | ... | ParticleLayout |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| newFileEachTime | Bool | True | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| AbstractContext | True | ... | context |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| baseFilename | String | self->name | ... |
| columnWidth | UnsignedInt | 12 | ... |
| decimalLength | UnsignedInt | 6 | ... |
| borderString | String | " " ) | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Swarm | True | ... | Swarm |
| AbstractContext | True | ... | context |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Stg_Shape | True | ... | self->shapeName |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| dofCount | UnsignedInt | 0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Swarm | True | ... | Swarm |
| Variable | No | ... | Variable |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
A general class which integrates each element in a Variable through time. It does this through a TimeDerivative method which it calls for each element in the Variable. This happens every time the TimeIntegrator that this object is attached to executes (This should happen on the AbstractContext_EP_Step EntryPoint.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Variable | No | This is a variable containing all the elements that the TimeIntegrator is integrating through time. | Variable |
| TimeIntegrator | True | This is the TimeIntegrator that this object will attach itself to. When this TimeIntegrator gets run, it will integrate this object through time. | TimeIntegrator |
| Stg_Component | True | This is a list of Components that this class stores pointers to. This is so that you can get extra information in the TimeDerivative function if the user wants to. | dataName |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
This is a general class designed to integrate several TimeIntegratee objects through time. When one of these is created, it puts a Hook on the AbstractContext_EP_StepClass EntryPoint so that the Execute function for this class runs at the end of every timestep. This execute function then integrates every TimeIntegratee that has been registered to it through time.
Example:
PICellerator/Apps/StgFEM_Components/TimeIntegrator.xml
Params
| Name | Type | Default | Description |
| order | UnsignedInt | 1 | The order of the integration. Possible values here are 1, 2 or 4. If 1 is given then it integrates using an Euler method. If 2 or 4 are given then the schemes are Runge Kutta 2 (RK2) or Runge Kutta 4 (RK4) respectively. |
| simultaneous | Bool | False | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| AbstractContext | True | This is the context which will run the Step entry point, on which the TimeIntegrator will add itself. | context |
Back to top
Location:
./StGermain/Discretisation/Geometry/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
| dim | UnsignedInt | 0 | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Shape/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Stg_Shape | True | ... | nameShape[1] |
| Stg_Shape | True | ... | nameShape |
Back to top
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
https://csd.vpac.org/twiki/bin/view/Stgermain/SoftwareLicense
Description:
This is a particle layout that simply combines many particle layouts together into one. When one particle layout finishes initialises all its particles, then the next one begins.
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| GlobalParticleLayout | True | This is a list of all the particle layouts that you want to combine into one. | ParticleLayoutList |
Back to top
Location:
./StGermain/Base/Automation/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
Variable makes an association between a defined, textual name and a chunk of data in memory. This data could take the form of a basic type (such as an int or double), or an element of an array, or an entire array or struct. Variable may also index a regular series of non-contiguous locations in memory. This capability to define arbitrary data within a datastructure makes it very powerful.
For example, a Variable can refer to a series of ints in an array with an offset of 1 and a stride of 3. This terminology will be familiar to those who are accustomed with MPI.
Once a Variable is defined, it is stored in the Variable Register. Like other Registers of StGermain, it can be accessed by any other Component.
The benefit of using Variable is that it provides access to data without the need for the original source code or linking to the header file. Practically everything you need to use the data is supplied by Variable: the memory location, a name for the data, its type and its size.
Example:
Examples:
XML version / MDF (Model Description File):
Unlike the C usage, MDF automatically handles memory allocation.
Variable
Vector
decomp-linear
Double
decomp-linear-nodeDomainCount
dim
vx
vy
vz
This XML example contains an important pair of parameters, Dependency and Count. Because the number and size of variables are not known presently, it is made a dependency of another Component, and they will be resolved dynamically. These values are often stored as numbers in the XML, as this example shows:
32
C version:
Using Variable in C is different to the XML implementation because you need to do own memory handling.
This example is based on the sourcecode in ~/code/StGermain/Base/Automation/tests/testVariable.c
/* Construct phase */
double* velocity;
Variable_NewVector("velocity", Variable_DataType_Double, 3, aSize[1], (void**)&velocity, vr, "vx", "vy", "vz");
/* Build phase*/
velocity = malloc(...);
component_Build(v);
A general form of the C version:
Variable_NewVector(name, type, length, array size, data array, variable register, [optional: list of names of array items]);
Params
| Name | Type | Default | Description |
| VectorComponentCount | UnsignedInt | nameCount | ... |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Stg_Component | No | ... | Dependency |
Back to top
Location:
./StGermain/Base/Automation/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Base/Automation/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Utils/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
Back to top
Location:
./StGermain/Discretisation/Swarm/src/
Project Web:
https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome
Copyright:
StGermain Framework. Copyright (C) 2003-2005 VPAC.
License:
The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html
Description:
This uses the SpaceFillerParticleLayout class to choose quasi-random particle positions, but it only places a particle there if it is within a particular shape.
Example:
WithinShapeParticleLayout
6000
boxShape
Params
| Name | Type | Default | Description |
Dependencies
| Type | Essential | Description | Name | FallbackKey |
| Stg_Shape | True | This is the shape within which all the particles will be laid out. | shape |
Back to top