You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.5 KiB
73 lines
2.5 KiB
# Mapping of exodus entities onto NetCDF
|
|
|
|
***If you are using NetCDF-4.5.1 or later, then you can ignore the information in this file.***
|
|
|
|
The distributed version of netcdf sets the following limits
|
|
on dimensions and variables:
|
|
* `#define NC_MAX_DIMS 1024`
|
|
* `#define NC_MAX_VARS 8192`
|
|
|
|
For use with Exodus, it is recommended that these be increased to:
|
|
* `#define NC_MAX_DIMS 65536`
|
|
* `#define NC_MAX_VARS 524288`
|
|
|
|
The reason for these increases is due to the mapping of Exodus onto
|
|
NetCDF. The sections below show the number of Dimensions (controlled
|
|
by NC_MAX_DIMS) and Variables (controlled by NC_MAX_VARS) that are
|
|
used in an Exodus file.
|
|
|
|
## Entities
|
|
* A mesh-entity is an individual node, edge, face, or element.
|
|
* An entity is a set or block consisting of a single mesh-entity type.
|
|
* Each entity can have variables, maps, and attributes which contain an entry per mesh-entity.
|
|
* Each entity has an optional name and a required id (32-bit or 64-bit )which is non-negative.
|
|
* A mesh-entity can be in one and only one entity block,
|
|
* A mesh-entity can be in zero or more entity sets.
|
|
* Currently there is only a single implicit node block containing all nodes in the model.
|
|
|
|
## Dimensions: (NC_MAX_DIMS)
|
|
* There are about 10 standard dimensions in every file.
|
|
* plus one for each set plus one if any attributes
|
|
* plus two for each block plus one if any attributes
|
|
* plus one for each transient variable on an entity (node, node set, element block, element set, ...)
|
|
|
|
## Variables: (NC_MAX_VARS)
|
|
* There are a few standard dimensions
|
|
* times
|
|
* names of each entity type (block set)
|
|
* ids of each entity type (block set)
|
|
* status of each entity type (block set)
|
|
* #ndim coordinates (1,2,3)
|
|
|
|
* Each block adds 1 + 2*#attr_on_block + #var_on_block
|
|
|
|
* Each set adds 2 + 2*#attr_on_set + #var_on_set
|
|
|
|
* Each sideset add 3 + 2*#attr_on_sset + #var_on_sset
|
|
|
|
* Each map adds 1
|
|
|
|
## Example
|
|
If we have an exodus file with:
|
|
* Nodes
|
|
|
|
* 5 Element blocks
|
|
* 4 transient variables per element block
|
|
* 2 attributes per element block
|
|
|
|
* 4 Node Sets
|
|
* Distribution Factors defined on each set
|
|
* 3 transient variables
|
|
|
|
* 3 Side Sets
|
|
* Distribution Factors defined on each set
|
|
* 2 transient variables
|
|
|
|
Then there would be about:
|
|
`10 + 5*(2+1) + 4*(2) + 3*(2) + 1 + 1 + 1 = 42` Dimensions
|
|
|
|
There would be about:
|
|
`5*(1+2*2+4) + 4*(2+3) + 3*(3+2) + 3*(5+4+3) + 3 + 1 = 120` Variables.
|
|
|
|
From this, you can see that a moderately complicated model would
|
|
quickly overflow the standard values for `NC_MAX_DIMS` and `NC_MAX_VARS`.
|
|
|