Meeting Minutes - 3 November 1999
Introduction
FieldML is an XML-based language for describing
time-varying and spatially-varying fields. The language will eventually serve
as a replacement for the ".exelem" and ".exnode" files
used by CMISS, and is intended to be useful for other
groups interested in the field description problem.
The aims of the language design process are to keep
the language concise, consistent, intuitive and flexible.
Requirements
It is expected that, at the most basic level, FieldML will comprise a set of regions, each including a description of the field within the region.
A good system is needed for describing the relationship between different regions. These relationships can be split up into three types :
Networking : When regions represent physically separate
regions, then the relationships between adjacent regions are simple boundaries.
This fits in well with the current (November 1999) CellML
network description of cellular models (<subspace>,
<boundary> and <mechanism>), although
that will probably be extended parallel to FieldML.
The boundaries can be thought of as regions with one dimension less than the
original regions -- this analogy may be useful in relating boundary elements
to finite elements (who knows?). Boundaries should probably be treated as a
separate type of structure, because the all-important mechanisms linking
variables/parameters in two regions can only occur in boundaries.
Grouping : It will frequently be useful to group a number
of regions together under a single parent. This parent is not a region itself;
it has no area or volume associated with it. Grouping can be used to set
properties for a number of regions (though clearly the region must be able to
override this if necessary - perhaps a priority switch?), and
assign relationships between regions that overlap, touch or don't touch (such
as the placement transformations in BeastML.
Embedding : Embedding is a special class of Grouping and represents a physical relationship between two regions whose volumes (or areas) overlap. Embedded regions should automatically inherit the properties of the parent region, unless explicitly overridden. It can be specified that the volume of the parent region may not include the region of the child region (the link essentially forming a Networking boundary in that case.
Example
The following simple example demonstrates how one might arrange regions for
a temperature field defined over the heart. At the top level, there is a
network of three regions and two boundaries. Within the "heart"
region, there is a "heart-muscle" group, containing two regions
representing muscle in the left and right ventricles. Within the left
ventricular muscle, a coronary network is embedded.
Note that this example doesn't really attempt to address the issue of field description at all - one problem at a time, please.
<field
name = "temperature">
<network
name = "whole-heart">
<region
name = "heart">
<region-group
name = "heart-muscle">
<region
name = "left-ventricular-muscle">
<region
name = "left-ventricular-coronary-network" />
</region>
<region
name = "right-ventricular-muscle" />
</region-group>
</region>
<region
name = "left-ventricular-blood-pool" />
<boundary
name = "LV-blood-muscle-boundary" />
<region
name = "right-ventricular-blood-pool" />
<boundary
name = "RV-blood-muscle-boundary" />
</network>
</field>