Control/ctrl file - nezbytné informace o úloze

Informace jsou členěny do bloků v libovolném pořadí (pořadí má drobné výjimky, na které budete eventuelně upozorněni při běhu programu). Každý blok je identifikován klíčovým slovem, které určuje jaká informace se v bloku nachází. Blok s daným klíčovým slovem se může vyskytovat pouze jednou nebo vůbec.

Informace v bloku jsou strukturovány do řádků. Počet řádků (pokud je jich víc než jeden) je třeba uvést na začátku bloku.

Informace mohou být umístěny buď v samostatném textovém souboru (argument -IN_ctrl file) v prostém (tzv. legacy) formátu nebo v XML formátu (rozdíl legacy/XML se rozpozná automaticky podle prvního znaku souboru, '#' - legacy, '<' - XML). Nebo jsou informace vloženy do souboru s geometrií - podporováno pouze geometrií s formátem VTKXML, data jsou taktéž v XML.

Struktura dat v XML formátu

<KEY>                ----+
  <item> xxx </item>     | blok s jedním řádkem
</KEY>               ----+
<KEY Number="N">     ----+
  <item> xxx </item>     | blok s více řádky
  ...                    |
</KEY>               ----+
...

Struktura dat v legacy formátu

Každý blok začíná hlavičkovým řádkem s klíčovým slovem a sahá až po hlavičkový řádek následujíciho bloku. Soubor musí být ukončen "ukončovacím blokem", který má klíčové slovo "END". Vše za znakem # je považováno za komentář.

### KEY com ----+ blok s jedním řádkem
xxx         ----+
### KEY com ----+
N               |
xxx             | blok s více řádky
xxx   # com     |
...         ----+
### ...
...
### END com ----+ ukončovací blok

### sekvence na začátku řádku indikuje hlavičkový řádek
KEY klíčové slovo (HEAD, NODES, ELEMENS, ..., END)
com volitelný komentář
N počet řádků v bloku
xxx vlastní data daného bloku

Struktura dat ve vlastních blocích je obecně různá. Můžeme je rozdělit na následující typy bloků.

Bloky PROBLEM_*

Bloky obsahují obecná data vztahujíci se k celé úloze.

Bloky PROBLEM_COMMENT, PROBLEM_OUTPUT_FILE_NAME, PROBLEM_ANALYSIS, PROBLEM_TYPE_DOF, PROBLEM_OUTPUT.

Bloky LIST_*

Bloky obsahují seznamy vlastností. V bloku/seznamu s danou vlastností jsou jednotlivé položky zapsány na novém řádku a uvedené identifikačním číslem, tzv. ID. Pomocí ID a názvu vlastnosti lze konkrétní instanci vlastnosti přiřadit vybraným komponentům (uzlům, elementům). Jedná se o nepřímé přiřazení.

Identifikační čísla ID v jednom bloku začínaji od jedničky, jsou řazeny vzestupně a nejsou podporovány mezery v číslování.

Bloky LIST_CROSS-SECTIONS, LIST_MATERIALS, LIST_BOUNDARY_CONDITIONS, LIST_SETS_IDS_PRESCRIBED_VALUES.

Bloky ASSIGN_* - vlastnosti ke komponentům

Vlastnosti jsou zde přiřazovány komponentům, tj. uzlů nebo elementům. Vlastnosti mohou být definované přímo nebo jsou definované pomocí svého ID a vlastní definice je v některém bloku LIST_**. Komponenty jsou definované pomocí property nebo ID čísla.

Property bloky - komponenty jsou definovány pomocí property.

Bloky ASSIGN_ATTRIBUTES_TO_NODE_PROP, ASSIGN_ATTRIBUTES_TO_ELEMENT_PROP.

ID bloky - komponenty jsou definovány pomocí ID.

Bloky ASSIGN_ATTRIBUTES_TO_NODE_ID, ASSIGN_ATTRIBUTES_TO_ELEMENT_ID.

Bloky ASSIGN_* - komponenty k vlastnostem

V daném bloku je každém řádku nejdříve uvedeno ID vlastnsti, viz Bloky LIST_*. Následuje identifikace komponentů, které mají mít danou vlastnost přiřazenou.

Bloky ASSIGN_NODAL_LOAD, ASSIGN_CONST_EDGE_LOAD, ASSIGN_CONST_SURFACE_LOAD, ASSIGN_CONST_BODY_LOAD.

Příklad - legacy formát

### PROBLEM_COMMENT ###
example - simple frame rectangle

            
### LIST_CROSS-SECTIONS ###
2
1 Rectangle width 0.1 height 0.2 refNode y -2
2 Rectangle width 0.1 height 0.3 refNode y -2

            
### LIST_MATERIALS ###
1
1 IsoLinEl  density 0.0000025  E 40000.0  nu 0.18  tAlpha 0.000012

            
### LIST_BOUNDARY_CONDITIONS ###
1
1 DeadWeight components 6 0.0 0.0 -1.0 0.0 0.0 0.0

            
### END ###

Příklad - XML formát

<PROBLEM_COMMENT>
  <item> example - simple frame rectangle </item>
</PROBLEM_COMMENT>
<LIST_CROSS-SECTIONS Number="2">
  <item> 1 Rectangle width 0.1 height 0.2 refNode y -2 </item>
  <item> 2 Rectangle width 0.1 height 0.3 refNode y -2 </item>
</LIST_CROSS-SECTIONS>
<LIST_MATERIALS Number="1">
  <item> 1 IsoLinEl  density 0.0000025  E 40000.0  nu 0.18  tAlpha 0.000012 </item>
</LIST_MATERIALS>
<LIST_BOUNDARY_CONDITIONS Number="1">
  <item> 1 DeadWeight components 6 0.0 0.0 -1.0 0.0 0.0 0.0 </item>
</LIST_BOUNDARY_CONDITIONS>