バルクデータのガイドライン
バルクデータエントリセクション内のすべてのエントリには以下のガイドラインが適用されます。
- 1行のデータの最大文字数は80文字です。80文字を超える文字はすべて無視されます。INCLUDEデータエントリとフリーフォーマットの場合は例外です。このエントリでは、SYSSETTING,CARDLENGTHを使用することによって、各行の文字数制限を変更することができます。
- Tabスペースは使用できません。存在すると、OptiStructでエラーが発生します。
- 各データ行には、以下の3つのフォーマットのいずれかを使用して、最大9個のフィールドを含めることができます。
- 固定フォーマット
- 各フィールドは8文字で構成されます。
- ラージフィールド固定フォーマット
- 各フィールドは16文字で構成されます。他のフォーマットと同様に、連続する2行で9個のフィールドを形成します。ラージフィールドフォーマットは、キーワード直後の1文字目、または各継続行の1文字目(‘*’)によって認識されます。2行目(‘ハーフライン’)が存在する場合は、その最初の列にも‘*‘が含まれている必要があります。各ハーフラインの最初のフィールドと最後のフィールドの長さは8文字です。最初のハーフラインの最後のフィールド、および2番目のハーフラインの最初のフィールドは無視されます。
- フリーフォーマット
- 各フィールドはコンマで分割します。コンマ前後の空白文字はあってもなくても関係ありません。コンマを2つ連続して入力すると、空(ブランク)のフィールドを定義できます。データ行にコンマがある場合、その行はフリーフォーマットデータと見なされます。フリーフォーマットの継続行は空白、‘+’、または‘*’で始まります。
- 先頭から10文字以内にコンマがある行はフリーフォーマットと見なされます。一方、カード名の直後に‘*’がある行、または継続行が‘*’で始まる行はラージフィールド固定フォーマットと見なされます。その他の行はすべて固定フォーマットとして読み出されます。
- 固定フォーマットを使用した場合、整数データの範囲(-9,999,999~99,999,999)および浮動小数点数値の制度が制限されますが、内部に格納されるデータに影響はありません。特に、浮動小数点数値は常に最大精度(64ビットのREAL*8)で読み出しおよび格納されます。
- バルクデータのフィールド数は、1行に最大9個という制限があります。固定フォーマットを使用する場合、10番目のフィールドの内容および各継続行の先頭フィールドは無視されます。この際、警告は表示されません(これらのフィールドは、一致する継続行をマークする場合など、他のコードから特別な目的で使用できます)。
- フリーフォーマットを拡張して、10個を超えるフィールドを1行に記述することはできません。10個を超えるフィールドがフリーフォーマットのカードに含まれている場合、エラーメッセージが出力されます。このエラーを無効にするには、SYSSETTING,SKIP10FIELDを使用します(これによって、致命的でない警告に変更します)。
- ドルマーク($)が付いた列はすべてコメントを示し、ドルマーク以降から行末までの文字はすべて無視されます。ドルマークを有効な文字として記述できるのは、引用符で囲んでファイル名の中に記述した場合のみです。
- 2重スラッシュ(//)またはシャープマーク(#)で始まる行はコメント行と見なされます。また、空白行もコメント行と見なされます。
- 最初の列の先頭に、各バルクデータエントリのキーワードを完全な形式で記述する必要があります。省略形は使用できません。
- ほとんどのバルクデータエントリのフォーマットはNastranのフォーマットと同様です。OptiStructでは、一部のエントリオプションはサポートされていません。サポートされているフィールドおよびオプションについては、リストをご参照ください。
- 継続エントリは親エントリの後に続けて記述する必要があります。先頭の文字が空白、‘+’、または‘*’のエントリは、前のエントリから継続しているものとして扱われます。全体が空白の行はコメントとして扱われます。
- ENDDATAエントリまたはファイルの終了でデータの最後を示します。ENDDATAエントリより後の行は無視されます。
- すべてのバルクデータエントリは、入力データ内のBEGIN BULKステートメントの後に記述する必要があります。
- 各カードの10番目のフィールドの内容、および各継続カードの1番目のフィールドの内容は無視されます。
- エントリはフィールド内のどこに記述しても構いません。たとえば、エントリ前後の空白は無視されます。ただし、キーワードエントリは例外で、フィールドに左詰めで記述する必要があります。
- エントリのデータに空白を入力することはできません。これは文字エントリでも必要です。
- 文字エントリ(ラベル)の先頭は文字またはアンダースコアにする必要があります。OptiStructが数字のみで構成されるラベルを受け入れる場合もあります。ただし、このアプローチは推奨されません。こうしたラベルでは、数字以外の文字(アンダースコアなど)を削除します。
- 数値エントリの先頭は、数字、‘+’、または‘-’のいずれかにする必要があります。
- 整数エントリに小数点や指数部を含めることはできません。また、値は使用可能範囲であるINTEGER*4(通常は–2**31<x<2**31)に収める必要があります。
- ユーザーID(GRID、要素、材料など)を表す整数エントリには、以下を含める必要があります:
1-999,999,999,999,9999の範囲内。範囲は、16桁のラージフォーマットの上限で制限されます。
- パートとインスタンスのアプローチを使用する入力デックでは、ユーザーIDが想定されるフィールドに完全修飾IDを入力できます。これらのデータは、パート名の後にピリオド(ドット)と整数IDが続く形で構成されます。ただし、すべてのフィールド、およびすべてのカードがこのような完全修飾IDを受け入れるわけではありません。特に、カードID(通常は1行目の2つ目のフィールド)のフォームは常に整数にする必要があります。
- 実数値データ用に予約されているフィールドに整数データを記述できます。このデータは倍精度に変換されます。ただし、フィールドの中には、入力した数値の性質で目的の機能が指定され、機能が変わるものがあります。たとえば、一方の機能では整数、もう一方の機能では実数が必要になります。この場合、変換は実行されません。
- 実数値データは、指数部なしで入力することも、明示的に‘E’または‘D’の文字を使用して指数部ありで入力することも、‘E’または‘D’を使用せず符号によって指数部の先頭を示して入力することもできます。実数値は内部的には、どの入力フォーマットを使用したかに関係なく倍精度データ(64ビットのREAL*8)として格納されます。以下は実数値データの有効な入力例です:
- 1.
- 0.1
- .1
- +.1
- -0.1
- 1e5
- 1e+5
- 1+5
- 1.0E-5
- .1d-5
- .00001-05
- ラージフィールドフォーマットおよびフリーフィールドフォーマットでは、9文字を超える長さの文字エントリは切り詰められます。この際、警告は表示されません。ただし、これには例外があります。INCLUDEエントリのファイル名(INCLUDE I/Oオプションエントリの説明をご参照ください)、およびDESVAR、DRESP1、DRESP2、DRESP3とDTABLEエントリのLABELフィールド(最大16文字)です。
- カード名を含め、文字エントリでは大文字と小文字は区別されません。ただし、ユーザーラベルを含む文字フィールド(DESVAR、DRESPxなど)では大文字と小文字が区別されます。
- 継続行は親エントリと同じフォーマットである必要はありません。1つのバルクデータカード内に異なるフォーマットの行を混在させることができます。
- ロングフォーマットの行は両方とも同じタイプにする必要があります。つまり、どちらも固定フォーマットにするか、どちらもフリーフォーマットにします。
- ロングフォーマットの2番目のハーフライン(空白の場合)は、ガードデータの最後の行である場合、または次の行がショートフォーマット(固定またはフリー)である場合のみ、スキップできます。
- 次の継続行がロングフォーマットの場合、空のハーフラインが存在し、固定ロングフォーマットの場合は‘*’、フリーロングフォーマットの場合は‘*,’をそれぞれ含む必要があります。こうしたハーフラインをスキップするのは一般的なエラーですが、この結果、フィールド6~9では次のハーフラインが使用されることになります。
- 不可視のタブ文字は、最も近いタブ位置まで移動するのに必要なスペースの数と同じ意味です。タブ位置は、8文字のフィールドそれぞれの先頭になります。SYSSETTINGS,TABSTOPSオプションを用いてこの値をたとえばタブが4文字のフィールドで止まる様に変更できます。
GRIDデータの複製
- 複製は、GRIDバルクデータエントリのみで使用できる、制限されたデータ生成機能です。
- 前のGRIDエントリのフィールドの複製は記号=のコードでなされます。
- 後の全てのフィールドの前のGRIDエントリからの複製は記号==のコードでなされます。
- 前のエントリからの増分値はコード *x または *(x)です。ここで、x は増分値です。“x” は実数のフィールドでは実数で、整数のフィールドでは整数の必要があります。括弧は無視され除去されます。
- ID、CP、X、Y、ZとCDのフィールドのみ増分を用いる事ができます。PSデータは増分を用いる事ができません。
- 複製データは他の複製データに続くことができます。 入力されたエントリ:
GRID,101,17,1.0,10.5,,17,3456 GRID,*1,=,*(0.2),== GRID,*100,,=,=,*10.0,== GRID,20,17,==
生成されたエントリ:GRID 101 17 1.0 10.5 17 3456 GRID 102 17 1.2 10.5 17 3456 GRID 202 1.2 10.5 10.0 17 3456 GRID 20 17 1.2 10.5 10.0 17 3456
重複エントリの削除
- 重複エントリの削除は、GRID、CORDxx、およびベースMAT/PROPエントリのみに制限されています(MATX、MATT、およびPROPXエントリでは重複は許可されていません)。
- 重複したエントリとして考慮されるためにはGRIDID、CP、CDとPSフィールドは同じである必要があります。GRIDの座標は、PARAM,DUPTOLで決められた設定の範囲内で同じである必要があります。
- 座標情報が重複と考えられるためには、CIDとGIDが同じで、ベクトルの成分と軸の位置がPARAM,DUPTOLで決められた設定の範囲内で同じである必要があります。
- 重複したGRIDデータの削除は、GRIDの複製機能を用いてどのようなGRIDデータが生成された後にも実行されます。
- 他の全てのカードは固有のIDを必要とし、どのようなIDも複数回現れた場合にはエラーとなります。しかしながら、最適化からの結果の変更の適用を簡単にするため、あるカードの内容の再定義をASSIGN,UPDATEで定義された別のファイルを用いて行うことができます。