Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/OpenCMISS/documentation
Browse files Browse the repository at this point in the history
…into OpenCMISSNotes
  • Loading branch information
chrispbradley committed Sep 12, 2017
2 parents efd9ecc + d36c2cf commit 98da0d1
Show file tree
Hide file tree
Showing 825 changed files with 121,063 additions and 11 deletions.
21 changes: 21 additions & 0 deletions _themes/ocmiss/layout.html
@@ -0,0 +1,21 @@
{% extends 'partials/common_with_sidebar.jinja' %}
{% set active_nav = "doc" %}
{% block title %}{{title}} - OpenCMISS{% endblock %}
{% block sidebar_title %}
<h1>Quick Links</h1>
{% endblock %}
{% block sidebar_content %}
{{ theme_navbar_site_name }}
{{ toctree(maxdepth=3, collapse=True) }}
{% endblock %}
{% block content %}
{% block body %}
{% endblock %}
{% endblock %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="/documentation/_static/basic.css">
<!-- build:css(.tmp) /styles/rst.css -->
<link rel="stylesheet" href="/styles/rst.css">
<!-- endbuild -->
{% endblock %}
2 changes: 2 additions & 0 deletions _themes/ocmiss/theme.conf
@@ -0,0 +1,2 @@
[theme]
inherit = basic
20 changes: 19 additions & 1 deletion conf.py
Expand Up @@ -21,6 +21,9 @@
# needed to find the cmake extension (copied to the containing folder by grunt script)
sys.path.insert(1, os.path.abspath('.'))

# Set numfig on to enable numref
numfig = True

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
Expand All @@ -31,6 +34,21 @@
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'cmake'
'sphinxcontrib.rawfiles',
'cmake',
]

# Raw files to copy to destination
rawfiles = [
'videos/oclibs_intro',
'videos/oclibs_install_reqs_intro',
'videos/oclibs_install_reqs_ubuntu',
'videos/oclibs_sdk_intro',
'videos/oclibs_sdk_ubuntu',
'videos/oclibs_building_intro',
'videos/oclibs_building_ubuntu',
]

if os.path.exists('_themes/ocmiss/partials/common_with_sidebar.jinja'):
html_theme = "ocmiss"
html_theme_path = ["_themes"]
6 changes: 6 additions & 0 deletions contribute.rst
@@ -0,0 +1,6 @@

============
Contributing
============

Want to contribute to OpenCMISS projects? Visit the `developers documentation page <developers.html>`_.
2 changes: 1 addition & 1 deletion contribute/dev_coding_standard.rst
Expand Up @@ -95,7 +95,7 @@ Fortran 90
* All features.

Fortran 95
^^^^^^^^^
^^^^^^^^^^

* All features.

Expand Down
3 changes: 3 additions & 0 deletions contribute/index.rst
@@ -1,3 +1,5 @@

=========================
Contributing to OpenCMISS
=========================

Expand All @@ -7,6 +9,7 @@ We at OpenCMISS want to make contributing as easy as possible while maintaining
of quality.

Prior to contributing code:

- Subscribe to the OpenCMISS developer mailing list.
- Watch the appropriate repo that you wish to develop (e.g. iron, zinc, examples, documentation, or website) in your GitHub account.

Expand Down
Binary file added data_format/CellML_Logo_200x100.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions data_format/cellml.rst
@@ -0,0 +1,12 @@
.. image:: CellML_Logo_200x100.png
:align: right
:target: https://www.cellml.org/

CellML in OpenCMISS
===================

OpenCMISS supports reading and solving models in CellML format, an open standard for representing mathematical models, based on the XML Markup Language.

Detailed documentation and specifications for CellML are given on `cellml.org <https://www.cellml.org/>`_, but its core features are the definition of scalar *variables* and the mathematical equations relating them. CellML is most commonly used to describe lumped parameter (0-D or spatially constant) models which are solved over time, but there are many other applications such as describing material constitutive laws. The open `Physiome Model Repository <https://models.physiomeproject.org/>`_ catalogs a large number of curated CellML models of various types, including representations of a great many important models of biological processes or whole cell function from the literature.

OpenCMISS-Iron allows lumped parameter CellML models to be solved on large numbers of points over spatial domains, and provides facilities for tying CellML variables to spatially varying fields so local CellML and global physics equations are simultaneously solved. Iron uses the code generation facilites of the CellML API Library, with on-the-fly compilation and linking to ensure high performance computation.
246 changes: 246 additions & 0 deletions data_format/fieldml/cube_pressure.fieldml
@@ -0,0 +1,246 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<Fieldml version="0.5.0" xsi:noNamespaceSchemaLocation="http://www.fieldml.org/resources/xml/0.5/FieldML_0.5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
<Region name="/">
<Import xlink:href="http://www.fieldml.org/resources/xml/0.5/FieldML_Library_0.5.xml" region="library">
<ImportType localName="real.1d" remoteName="real.1d"/>
<ImportEvaluator localName="shape.unit.cube" remoteName="shape.unit.cube"/>
<ImportEvaluator localName="interpolator.3d.unit.trilinearLagrange" remoteName="interpolator.3d.unit.trilinearLagrange"/>
<ImportType localName="parameters.3d.unit.trilinearLagrange" remoteName="parameters.3d.unit.trilinearLagrange"/>
<ImportEvaluator localName="parameters.3d.unit.trilinearLagrange.argument" remoteName="parameters.3d.unit.trilinearLagrange.argument"/>
<ImportType localName="parameters.3d.unit.trilinearLagrange.component" remoteName="parameters.3d.unit.trilinearLagrange.component"/>
<ImportEvaluator localName="parameters.3d.unit.trilinearLagrange.component.argument" remoteName="parameters.3d.unit.trilinearLagrange.component.argument"/>
<ImportEvaluator localName="chart.3d.argument" remoteName="chart.3d.argument"/>
<ImportType localName="coordinates.rc.3d" remoteName="coordinates.rc.3d"/>
<ImportType localName="coordinates.rc.3d.component" remoteName="coordinates.rc.3d.component"/>
<ImportEvaluator localName="coordinates.rc.3d.component.argument" remoteName="coordinates.rc.3d.component.argument"/>
</Import>
<EnsembleType name="nodes">
<Members>
<MemberRange min="1" max="8"/>
</Members>
</EnsembleType>
<EnsembleType name="node_derivatives">
<Members>
<MemberRange min="1" max="8"/>
</Members>
</EnsembleType>
<ConstantEvaluator name="node_derivatives.value" value="1" valueType="node_derivatives"/>
<ConstantEvaluator name="node_derivatives.d_ds1" value="2" valueType="node_derivatives"/>
<ConstantEvaluator name="node_derivatives.d_ds2" value="3" valueType="node_derivatives"/>
<ConstantEvaluator name="node_derivatives.d2_ds1ds2" value="4" valueType="node_derivatives"/>
<ConstantEvaluator name="node_derivatives.d_ds3" value="5" valueType="node_derivatives"/>
<ConstantEvaluator name="node_derivatives.d2_ds1ds3" value="6" valueType="node_derivatives"/>
<ConstantEvaluator name="node_derivatives.d2_ds2ds3" value="7" valueType="node_derivatives"/>
<ConstantEvaluator name="node_derivatives.d3_ds1ds2ds3" value="8" valueType="node_derivatives"/>
<EnsembleType name="node_versions">
<Members>
<MemberRange min="1" max="1"/>
</Members>
</EnsembleType>
<ConstantEvaluator name="node_versions.1" value="1" valueType="node_versions"/>
<ArgumentEvaluator name="nodes.argument" valueType="nodes"/>
<ArgumentEvaluator name="node_derivatives.argument" valueType="node_derivatives"/>
<ArgumentEvaluator name="node_versions.argument" valueType="node_versions"/>
<ArgumentEvaluator name="nodes.parameters" valueType="real.1d">
<Arguments>
<Argument name="nodes.argument"/>
<Argument name="node_derivatives.argument"/>
<Argument name="node_versions.argument"/>
</Arguments>
</ArgumentEvaluator>
<MeshType name="mesh3d">
<Elements name="elements">
<Members>
<MemberRange min="1" max="1"/>
</Members>
</Elements>
<Chart name="xi">
<Components name="mesh3d.xi.components" count="3"/>
</Chart>
<Shapes evaluator="shape.unit.cube"/>
</MeshType>
<ArgumentEvaluator name="mesh3d.argument" valueType="mesh3d"/>
<EnsembleType name="mesh3d.eftIndexes">
<Members>
<MemberRange min="1" max="1"/>
</Members>
</EnsembleType>
<ArgumentEvaluator name="mesh3d.eftIndexes.argument" valueType="mesh3d.eftIndexes"/>
<EnsembleType name="mesh3d.eft1.nodes">
<Members>
<MemberRange min="1" max="8"/>
</Members>
</EnsembleType>
<ArgumentEvaluator name="mesh3d.eft1.nodes.argument" valueType="mesh3d.eft1.nodes"/>
<ArgumentEvaluator name="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Arguments>
<Argument name="node_derivatives.argument"/>
<Argument name="node_versions.argument"/>
<Argument name="mesh3d.eft1.nodes.argument"/>
</Arguments>
</ArgumentEvaluator>
<ConstantEvaluator name="mesh3d.eft1.nodes.1" value="1" valueType="mesh3d.eft1.nodes"/>
<ConstantEvaluator name="mesh3d.eft1.nodes.2" value="2" valueType="mesh3d.eft1.nodes"/>
<ConstantEvaluator name="mesh3d.eft1.nodes.3" value="3" valueType="mesh3d.eft1.nodes"/>
<ConstantEvaluator name="mesh3d.eft1.nodes.4" value="4" valueType="mesh3d.eft1.nodes"/>
<ConstantEvaluator name="mesh3d.eft1.nodes.5" value="5" valueType="mesh3d.eft1.nodes"/>
<ConstantEvaluator name="mesh3d.eft1.nodes.6" value="6" valueType="mesh3d.eft1.nodes"/>
<ConstantEvaluator name="mesh3d.eft1.nodes.7" value="7" valueType="mesh3d.eft1.nodes"/>
<ConstantEvaluator name="mesh3d.eft1.nodes.8" value="8" valueType="mesh3d.eft1.nodes"/>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node1.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.1"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node2.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.2"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node3.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.3"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node4.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.4"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node5.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.5"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node6.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.6"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node7.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.7"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.nodeparameters.node8.value.v1" evaluator="mesh3d.eft1.nodeparameters.argument" valueType="real.1d">
<Bindings>
<Bind argument="mesh3d.eft1.nodes.argument" source="mesh3d.eft1.nodes.8"/>
<Bind argument="node_derivatives.argument" source="node_derivatives.value"/>
<Bind argument="node_versions.argument" source="node_versions.1"/>
</Bindings>
</ReferenceEvaluator>
<AggregateEvaluator name="mesh3d.eft1.parameters" valueType="parameters.3d.unit.trilinearLagrange">
<Bindings>
<BindIndex argument="parameters.3d.unit.trilinearLagrange.component.argument" indexNumber="1"/>
</Bindings>
<ComponentEvaluators>
<ComponentEvaluator component="1" evaluator="mesh3d.eft1.nodeparameters.node1.value.v1"/>
<ComponentEvaluator component="2" evaluator="mesh3d.eft1.nodeparameters.node2.value.v1"/>
<ComponentEvaluator component="3" evaluator="mesh3d.eft1.nodeparameters.node3.value.v1"/>
<ComponentEvaluator component="4" evaluator="mesh3d.eft1.nodeparameters.node4.value.v1"/>
<ComponentEvaluator component="5" evaluator="mesh3d.eft1.nodeparameters.node5.value.v1"/>
<ComponentEvaluator component="6" evaluator="mesh3d.eft1.nodeparameters.node6.value.v1"/>
<ComponentEvaluator component="7" evaluator="mesh3d.eft1.nodeparameters.node7.value.v1"/>
<ComponentEvaluator component="8" evaluator="mesh3d.eft1.nodeparameters.node8.value.v1"/>
</ComponentEvaluators>
</AggregateEvaluator>
<ReferenceEvaluator name="mesh3d.eft1" evaluator="interpolator.3d.unit.trilinearLagrange" valueType="real.1d">
<Bindings>
<Bind argument="parameters.3d.unit.trilinearLagrange.argument" source="mesh3d.eft1.parameters"/>
</Bindings>
</ReferenceEvaluator>
<DataResource name="mesh3d.eft1.localtoglobalnodes.data.resource">
<DataResourceDescription>
<DataResourceString>1 2 3 4 5 6 7 8
</DataResourceString>
</DataResourceDescription>
<ArrayDataSource name="mesh3d.eft1.localtoglobalnodes.data.source" location="1" rank="2">
<RawArraySize>1 8</RawArraySize>
<ArrayDataSize>1 8</ArrayDataSize>
</ArrayDataSource>
</DataResource>
<ParameterEvaluator name="mesh3d.eft1.localtoglobalnodes" valueType="nodes">
<DenseArrayData data="mesh3d.eft1.localtoglobalnodes.data.source">
<DenseIndexes>
<IndexEvaluator evaluator="mesh3d.argument.elements"/>
<IndexEvaluator evaluator="mesh3d.eft1.nodes.argument"/>
</DenseIndexes>
</DenseArrayData>
</ParameterEvaluator>
<ReferenceEvaluator name="mesh3d.eft1.evaluator" evaluator="mesh3d.eft1" valueType="real.1d">
<Bindings>
<Bind argument="chart.3d.argument" source="mesh3d.argument.xi"/>
<Bind argument="mesh3d.eft1.nodeparameters.argument" source="nodes.parameters"/>
<Bind argument="nodes.argument" source="mesh3d.eft1.localtoglobalnodes"/>
</Bindings>
</ReferenceEvaluator>
<PiecewiseEvaluator name="mesh3d.fieldtemplate1" valueType="real.1d">
<IndexEvaluators>
<IndexEvaluator evaluator="mesh3d.argument.elements" indexNumber="1"/>
</IndexEvaluators>
<EvaluatorMap default="mesh3d.eft1.evaluator"/>
</PiecewiseEvaluator>
<DataResource name="nodes.coordinates.data.resource">
<DataResourceDescription>
<DataResourceString>0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1
</DataResourceString>
</DataResourceDescription>
<ArrayDataSource name="nodes.coordinates.data.source" location="0" rank="2">
<RawArraySize>8 3</RawArraySize>
<ArrayDataSize>8 3</ArrayDataSize>
</ArrayDataSource>
</DataResource>
<ParameterEvaluator name="nodes.coordinates" valueType="real.1d">
<DenseArrayData data="nodes.coordinates.data.source">
<DenseIndexes>
<IndexEvaluator evaluator="nodes.argument"/>
<IndexEvaluator evaluator="coordinates.rc.3d.component.argument"/>
</DenseIndexes>
</DenseArrayData>
</ParameterEvaluator>
<AggregateEvaluator name="coordinates" valueType="coordinates.rc.3d">
<Bindings>
<BindIndex argument="coordinates.rc.3d.component.argument" indexNumber="1"/>
<Bind argument="nodes.parameters" source="nodes.coordinates"/>
</Bindings>
<ComponentEvaluators default="mesh3d.fieldtemplate1"/>
</AggregateEvaluator>
<ContinuousType name="pressure.domain"/>
<DataResource name="nodes.pressure.data.resource">
<DataResourceDescription>
<DataResourceString>80000 100000 100000 80000 100000 80000 80000 100000
</DataResourceString>
</DataResourceDescription>
<ArrayDataSource name="nodes.pressure.data.source" location="0" rank="1">
<RawArraySize>8</RawArraySize>
<ArrayDataSize>8</ArrayDataSize>
</ArrayDataSource>
</DataResource>
<ParameterEvaluator name="nodes.pressure" valueType="real.1d">
<DenseArrayData data="nodes.pressure.data.source">
<DenseIndexes>
<IndexEvaluator evaluator="nodes.argument"/>
</DenseIndexes>
</DenseArrayData>
</ParameterEvaluator>
<ReferenceEvaluator name="pressure" evaluator="mesh3d.fieldtemplate1" valueType="pressure.domain">
<Bindings>
<Bind argument="nodes.parameters" source="nodes.pressure"/>
</Bindings>
</ReferenceEvaluator>
</Region>
</Fieldml>

0 comments on commit 98da0d1

Please sign in to comment.