# FieldML concepts

Shane's FieldML notes from 2003: http://www.physiome.org.nz/xml_languages/fieldml/documents/minutes_20030305.html

Richards Region Notes particularly the "DAG or Tree?" and "Fields in Regions" paragraphs about 2/3 way through

Shanes FieldML Notes on these objects

Examples

To be done

- Tricubic with scale factors
- Multiple fields in the same file, nodes etc.
- Embedded mesh
- Grid / Image data
- Simplicies
- Polygons? Finite volume types bases?

FieldML objects

Base Concepts

Integer

Real

Complex

Set

Unordered collection of objects.

List

Ordered collection of objects.

Set of X

Unordered collection of objects of type X.

List of X

Ordered collection of objects of type X.

Region Concepts

Region

Synonyms: Manifold (with fewer restrictions); Space.

Region is a container for Regions of the same, or lower, dimension.

Dimension: {1} Integer ≥0

A Region has a single dimension.

Regions: set of {0,1,2,...} Region Regions.Region.Dimension≤Dimension

Enables a tree-like hierarchy of embedded Region, all having the same, or lower, Dimension.

Region Point

Specialisation of Region with restriction Dimension=0.

Region Curve

Specialisation of Region with restriction Dimension=1.

Region Surface

Specialisation of Region with restriction Dimension=2.

Element Concepts

Element

Synonyms: Coordinate system; Chart

Dimension: {1} Integer ≥0

Interior: {1} MathML ('condition' element or 'domain' element?)

Inequality specifies what Element Points are interior to the Element.

Boundary points can be inferred by replacing inequalities with equalities.

Element Point

Denotes a position within a Element by specifying its coordinates.

Element: {1} Element

Coordinates: {1} Coordinates

The number of coordinate in Coordinates must equal Element.Dimension.

Coordinates

- Coordinates: list of Coordinate
Coordinate

- Coordinate: Real
Element Point to Region Point Link

Associates an Element Point with one and only one Region Point. Because different Element Point may be associated with the same Region Point, this enables any Element Point to be linked to a Element Point of another Element. This association is the mechanism for defining the topology, or connectedness, of multiple Element in the same Region. http:ShanesFieldMLNotes#ref1

- Element Point: {1} Element Point
- Region Point: {1} Region Point
Ensemble Concepts

Ensemble

Synonyms: Mesh; Atlas; Topology.

An Ensemble is a collection of Ensemble and/or Element. OED defines ensemble as "a group of items viewed as a whole"

Region: {1} Region

An Ensemble defines a covering of a Region, enabling each Region Point to be located with respect to other Region Point(s).

A Region may have several Ensemble.

Ensembles: set of {0,1,2,...} Ensemble

An Ensemble of a Regions.Region can be incorporated into a Region.

This enables a hierarchy of Ensemble to be constructed.

Elements: set of {0,1,2,...} Element

Multiple Element may be added to an Ensemble.

Element Field Concepts

Element Field

Element: {1} Element

An Element Field is defined over a single Element

Element Field Function: {1} Element Field Function

Element Field Parameters: list of {0,1,2,...} Element Field Parameter

These are a list of arguments to the Element Field Function to evaluate the Element Field at an Element Point

Element Field Function

Element Field Function: {1} MathML lambda

This function takes Element Field Parameters as arguments to evaluate the Element Field at an Element Point

Element Field Basis Functions

This is a specialisation of Element Field Function for the case where the Element Field is a linear combination of Element Field Basis Functions weighted by the Element Field Parameters

- Element Field Basis Functions: list of {0,1,2,...} Element Field Basis Function
Element Field Basis Function

- Element Field Basis Function: {1} MathML lambda
Element Field Parameter

The type of Element Field Parameter is the same type as Element Field.

Some thought must go into how this is handled: do we allow arbitrary types (e.g. tensors, discrete, non-numeric, etc.)?

How do we handle fields that are composed of components with different Element Field Function (e.g. different interpolations for different components)?

- Element Field Parameter: {1} X
Ensemble to Element Concepts

Ensemble Field Parameters to Element Field Parameters Maps

This specifies a general mapping from Ensemble Field Parameters to Element Field Parameters of an Element Field

Element Field: {1} Element Field

Field Parameters Maps: {1} MathML lambda

This function takes all Ensemble Field Parameters as arguments and returns all Element Field Parameters for Element Field of Element.

Ensemble Field Parameters to Element Field Parameters Linear Maps

This is a specialisation of Ensemble Field Parameters to Element Field Parameters Map thet specifies a linear mapping from Ensemble Field Parameters to Element Field Parameters of an Element

Element Field: {1} Element Field

Field Parameters Maps: list of Field Parameters Linear Map

This linear function takes all Ensemble Field Parameters as arguments and returns all Element Field Parameters for Element Field of Element.

The list length is equal to the number of Element Field Parameters in Element Field

Field Parameters Linear Map

For a specific Element Field Parameter, specifies the associated Ensemble Field Parameters and their weights.

- Ensemble Parameters: list of Ensemble Parameter
- Ensemble Parameter Weights: list of Real
Ensemble Field Parameters to Element Field Parameters Real Maps

This is a specialisation of Ensemble Field Parameters to Element Field Parameters Linear Map thet specifies a real mapping from Ensemble Field Parameters to Element Field Parameters of an Element

Element Field: {1} Element Field

Field Parameters Maps: list of Field Parameters Real Map

This linear function takes all Ensemble Field Parameters as arguments and returns all Element Field Parameters for Element Field of Element. The list length is equal to the number of Element Field Parameters in Element Field

Field Parameters Real Map

For a specific Element Field Parameter, specifies the associated Ensemble Field Parameter and its weighting (i.e. scale factor).

- Ensemble Parameters: Ensemble Parameter
- Ensemble Parameter Weights: Real
Ensemble Field Parameters to Element Field Parameters Boolean Maps

This is a specialisation of Ensemble Field Parameters to Element Field Parameters Real Map thet specifies a boolean mapping from Ensemble Field Parameters to Element Field Parameters of an Element

Element Field: {1} Element Field

Field Parameters Maps: list of Field Parameters Boolean Map

This linear function takes all Ensemble Field Parameters as arguments and returns all Element Field Parameters for Element Field of Element.

The list length is equal to the number of Element Field Parameters in Element Field

Field Parameters Boolean Map

For a specific Element Field Parameter, specifies the associated Ensemble Field Parameter and its weighting (i.e. scale factor).

Note that there is no requirement for Ensemble Parameter Weights as these are all unit weights.

- Ensemble Parameters: Ensemble Parameter
Ensemble Field Parameters to Element Field Parameters Boolean Map

This is a specialisation of Ensemble Field Parameters to Element Field Parameters Linear Map thet specifies a boolean mapping between Ensemble Field Parameters and Element Field Parameters of an Element

Element: {1} Element

Field Parameters Map: {1} MathML Boolean matrix

This boolean function takes all Ensemble Field Parameters as arguments and returns all Element Field Parameters for Element Field of Element.

Ensemble Field Concepts

Ensemble Field

Synonyms: Field.

Ensemble: {1} Ensemble

An Ensemble Field is defined over a single Ensemble

Ensemble Field Function: {1} Ensemble Field Function

Ensemble Field Parameters: list of {0,1,2,...} Ensemble Field Parameter

These are a list of arguments to the Ensemble Field Function to evaluate the Ensemble Field at an Ensemble Point

Ensemble Field Function

This is the union of Element Field Function over all Element in Ensemble.

- Ensemble Field Function: {1} union over all Element in Ensemble of Element Field Function
Ensemble Field Parameter

The type of Ensemble Field Parameter is the same type as Ensemble Field.

Some thought must go into how this is handled: do we allow arbitrary types (e.g. tensors, discrete, non-numeric, etc.)?

How do we handle fields that are composed of components with different Ensemble Field Function (e.g. different interpolations for different components)?

- Ensemble Field Parameter: {1} X