System Definition#
This tutorial assumes XCOMPUTE-CLIENT is connected to a live XCOMPUTE-SERVER session. The concepts presented here are central to projects hosted on XCOMPUTE-SERVER and accessed via XCOMPUTE-CLIENT.
Hierarchy#
Projects are assembled as systems-of-systems trees, enabling teams to: scope, composite, and reuse systems. The project hierarchy maps xcompute systems to filesystems folders on the host server, providing teams a digital embodiment and source-of-truth.
In XCOMPUTE-CLIENT, the
Navigation Tree(top left in-scene widget) is the main way to switch between and activate systems, defining the user’s working context.You can also double-click on region graphics in-scene to navigate/activate. Double-clicking on the background navigates up the tree.
A system can be the parent to subsystems (aka children). A parent system envelops its subsystems in space and time. Systems are designed to be be reused in varying configurations and fidelity.
Subsystems can:
resolve a system as an
assemblyorcomponent.be a
studyorcase(a shallow copy of a parent system’s geometry, with varying physics and conditions).
In a mathematical space-time sense, given child system C, its parent system P, and root system R; R envelopes P, and P envelopes C:
C(x,t) ∈ P(x,t) ∈ R(x,t)
Filesystem#
As systems map to folders on the host filesystem: each system’s setups (defined in XCS or JSON files) reference files and subsystem folders. If the resource is not found in the system’s local folder, shared resources can be specified in the top level of the server’s input directory. This way, systems can specify their own local attributes or point to shared resources.
Management#
Within the Manage tab…
A system is managed by its owner, including:
Basic Info#
name: what this system is called (unique to siblings)owner: who is responsible for this systemURL: an optional link to some web resource
Name restrictions:
must be unique relative to sibling system names
_and.prefixes are reserved - do not use
Referenced Files#
automatically added upon import
can manually add, delete, open
Within each system, files can be added
+, removed-, or exported@. Set the file extension behavior ininterface.cfgto automatically open the file following export.
System Notes#
This is simply a convenient place for useful raw text (directions, status, to-do lists).
Note: the admin has special permissions to modify any system
Schematic (experimental)#
Within the Systems tab…
Requirements#
Enforceable inequalities can be defined and checked manually or upon iteration. In the requirements list, add + a new requirement and remove a requirement with -. Edit it by clicking @.
The form:
PropertyKey Comparitor Value.
For example:
Temperature < 500.
Coupling#
Contacts#
Geometry#
In the Geometry tab…
A given system may assign an optional geometry, which can be unique to that system or referenced by multiple systems. Recognized geometry formats are focused on neutral discrete surfaces (that can be export from any CAD program), including: STL, OBJ, PLY, MSH.
An assigned geometry can define discrete elements: nodes, edges, faces, and cells. Each element have low-level functions to compute numerical attributes such as: neighbors, center, and other metrics such as length, area, and volume.
Unstructured meshes define underlying positions and topology in memory, while structured grids procedurally compute these attributes (for efficient background grids).
Elements are defined by their type and the nodes that comprise the corners of the element.
Each element has a
region IDto define regions for the end user and algorithms (e.g. to apply boundary conditions). By convention, the default region ID is0. Positive integers are for user assignment. Negative ID’s are for internal processing and can be used to indicate empty elements (to be skipped).Optional geometric data has a default
save/loadlocation under_geometry_data/.
Regions#
Regions and corresponding geometric element types (by dimensionality):
0D:
GroupsofNodes1D:
LoopsofEdges2D:
SurfacesofFaces3D:
VolumesofCells
A geometry can define regions: groups, loops, surfaces, and volumes. A geometric region is defined by its topological dimensionality and its assigned intrinsic ID. Underlying elements are gathered during use.
Boundary conditions are not applied to the geometry, but rather, bind to the system instance and region (as a geometry may be patterned across systems).
Physics#
In the Physics tab…
Physics is a type of model that contains other models defined by a set of algorithms and physical data constants (unless otherwise specified).
Physical algorithms are arranged by an auto-sequence method, yielding an instruction sequence to achieve a desired set of data outputs given a set of inputs and constants.
Physical Models#
A model is a collection of algorithms defining the behavior of a system - usually as state equations and a spatial transport process.
Available models are dependent on the XCOMPUTE-SERVER license type.
Materials#
Materials are referenced by name; the materials database is accessible across all systems. New and custom materials can be added to the material database at runtime.
The database is saved to the input path as XCO files within a folder named materials/, which can be loaded at launch or with the XC command reload materials.
Default material data come from the physics constants.
Materials can be assigned to regions, namely volumes in 3D.
Conditions#
Within the Conditions tab…
Initial Condition#
Initial conditions are only necessary for transient systems, typically a Dirichlet state executed once within the solver’s preprocessor.
Boundary Conditions#
Boundary conditions are required to provide spatial closure to the numerical domain, typically applied within the solver’s main sequence.
In the render scene, select one or more surfaces and right click for the context menu. The available boundary conditions will appear. Set the desired values in the inspector panel.
Coupling Boundaries#
Coupling provides a dynamic alternative to static boundary conditions, enabling adjacent systems to communicate information to provide a global solution.
In the render scene, select two surfaces and right click for the context menu. The available couplings will appear.
Alternatively, coupling can be prescribed visually via the schematic in the
Systemstab.
Solver#
Within the Solver tab…
Data#
Within the Data tab…
A system has data as the main record of floating-point vectors accessible by PropertyKey. Systems and bound algorithms read/write this data, usually assigned on a per-node basis. For storage, data is serialized and deserialized into XCO files for each PropertyKey in the record.
If there are
Nnodes in a system, by convention, a given field data property will haveNrows andCcomponents (columns), and the entry has a total size ofNxCvalues.Scalar values have 1 component, vectors have 3 components, and tensors typically have 9 components (assuming 3D). Transform matrices may be expressed with 9 (3x3) or 16 (4x4) components for homogenous transformations.
The
save/loadlocation of system data is in the system’s folder in a directory named_system_data/.
Inertial Properties#
Inertial properties are available for a single system and recursively for all systems on that branch.
Integralcomputes the scalar field sum using volumetric methods or the vector field (flux) sum using surface methods (via median duals).Masscomputes the volumetric or surface integral of {Mass|Density}, or defaults to user-defined {Mass}.CGcomputes the moment of {Mass|Density} divided by the {Mass}, or defaults to user-defined {Position|Reference}.
Rotational moments of inertia can also be calculated. The rotation point defaults to the CG unless otherwise specified.
1st Momentcomputes the volumetric integral for any property (such as {Mass|Density}) about any rotation center, returning the zero vector by default about the CG.2nd Momentcomputes the volumetric integral for any property (such as {Mass|Density}) about any rotation center, by default about the CG.
Visuals#
Within the Visuals tab…