これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ffc です。
プログラム:
NAME
FFC - FEniCS フォーム コンパイラ
SYNOPSIS
ffc [-h] [-V] [-v] [-s] [-e] [-l 言語] [-r 表現] [-f オプション] [-O] [-q
求積ルール] ... input.ufl ...
DESCRIPTION
複数線形フォームを効率的な低レベル コードにコンパイルします。
FEniCS フォーム コンパイラ FFC は、XNUMX つまたは複数のファイルを入力として受け入れます。各ファイルは XNUMX つまたは複数のファイルを指定します。
より多線形な形式を使用し、指定された形式を効率的な低レベル コードにコンパイルします。
多重線形形式を表すテンソルの自動アセンブリ。 特にFFC
変分問題を定義する双一次形式と線形形式のペアをコードにコンパイルします。
を使用して、対応する線形システムを効率的に組み立てることができます。
デフォルトでは、FFC は UFC 仕様バージョン 1.0 (Unified
フォームアセンブリコード、を参照してください。 http://www.fenics.org/) ただし、これは、を指定することで制御できます。
異なる出力言語 (オプション -l)。 新しい出力言語を追加することもできます。
FFC。
FFC の詳細な説明 (FFC に使用されるフォーム言語の仕様など)
複数線形フォームを定義するには、FEniCS Web ページで入手可能な FFC ユーザー マニュアルを参照してください。
http://www.fenics.org/
OPTIONS
-h, - 助けて
ヘルプテキストを表示して終了します。
-V, - バージョン
バージョン番号を表示して終了します。
-v, -詳細
詳細モードでは、より多くの出力が表示されます。 -s と競合します。
-s, - 静けさ
サイレント モードでは、出力は印刷されません。 -v と競合します。
-e, --エラー制御
エラー制御モード。目標指向のエラーに役立つ追加フォームのセット
コントロールが生成され、コンパイルされます。
-l 言語、 - 言語 言語
出力言語を「ufc」(デフォルト) または「dolfin」(小さなレイヤーを備えた UFC) のいずれかで指定します。
DOLFIN 固有のバインディングの)。
-r 表現、 - 表現 表現
事前計算とコード生成の表現を「直交」のいずれかで指定します。
(デフォルト) または 'テンソル'。
-f オプション
コード生成オプションを指定します。 利用可能なオプションのリストは、
指定された言語(形式)。 現在のオプションには以下が含まれます -fblas, -fno-foo,
-f精度=n, -fprecompute_basis_const, -fprecompute_ip_const,
-fsimplify_expressions, -feliminate_zeros, -fquadrature_degree=n そして、 -fsplit,
-fno_ferari、以下で詳しく説明します。
-f ブラス
BLAS を使用してテンソル積を計算するコードを生成します。 このオプションは現在、
無視されますが、BLAS オプションが有効な場合にコード サイズを削減するために使用できます。
将来のバージョンで(再)実装されます。
-f だめだ
「foo」という名前の UFC 関数のコードを生成しないでください。 典型的なオプションには次のものがあります。 -ふの-
評価基準 & -fno-evaluate_basis_derivatives サイズを小さくするには
これらの関数が必要ない場合に生成されるコード。
-f 精度=n
生成されたコードの有効桁数を n に設定します。 デフォルト値
n は 15 です。
-f precompute_basis_const
直交表現の最適化オプション。 次の場合、このオプションは無視されます。
最適化は使用されません (「 -O オプション)、そしてそれはまた、
-fprecompute_ip_const オプション。 このオプションは、項を事前計算するコードを生成します。
これらは、基底インデックスを含むループ内では一定です。 これにより、次のような問題が発生する可能性があります。
操作数が削減され、それによって実行時の効率が向上します。
生成されたコード。 ただし、改善は GCC コンパイラ オプションに依存します。
変奏形の特徴も。
-f precompute_ip_const
以下のような -fprecompute_basis_const このオプションの唯一の違いは、コードが次のようになります
を含むループ内で定数である項を計算するために生成されます。
統合ポイントのみ。
-f simplify_expressions
直交表現の最適化オプション。 次の場合、このオプションは無視されます。
最適化は使用されません (「 -O オプション)。 式を単純化する前に、
ローカル要素テンソルを計算すると、それらは識別および
幾何学および積分に関して一定の項を事前計算します。
ポイント。 この操作には、多数の新しい作成が含まれるため、非常にコストがかかる可能性があります。
メモリが枯渇する可能性がある用語。
-f ゼロを排除する
直交表現の最適化オプション。 次の場合、このオプションは無視されます。
最適化は使用されません (「 -O オプション)。 基底関数の値を含むテーブル
ゼロ以外の値のみが含まれるように圧縮されます。 これにより減少します
ループの範囲とそれに伴う操作の数ですが、マッピングは
要素行列に値を正しく挿入するために、いくつかの機能が導入されました。
オーバーヘッドが導入されます。 通常、この最適化オプションは次の場合に最も効果的です。
他の最適化オプションのいずれかと組み合わせてください。
-f 直交度=n
に関係なく、n 次まで正確な直交規則を生成します。
形式の多項式の次数。 このオプションは、UFL フォームと
指定された学位は、学位のない指定された形式のすべての用語に適用されます。
メタデータを通じて指定されています! デフォルトでは FFC が度を決定します
フォームから自動で登録されます。
-f split
宣言と実装用に別のファイルを生成します。
-f no_ferari
-O フラグが設定されている場合でも、FErari の最適化をスキップします。 これは次の場合にのみ効果があります。
テンソル表現が使用されます。 このオプションは、
-O フラグは、FFC に次のことのみを指示することで、潜在的に非常に長いコンパイル時間を回避します。
直交表現が使用される場合に最適化します。
-O, - 最適化
最適化されていないコードと比較して、操作数が少ない最適化されたコードを生成します。
ローカル要素テンソルのアセンブリ用。 これにより、一般に、
コードの実行時のパフォーマンス。 表現の場合(を参照) -r オプション) は「テンソル」です
その場合、FFC は FErari 最適化を使用します。 このオプションには FErari が必要であり、次のようにする必要があります。
他の用途では (コンパイル時に) 非常にコストがかかる可能性があるため、注意して使用してください。
シンプルな形。 表現が 'quadrature' の場合、コンパイル時間は増加します
非常に複雑なフォームの場合、FErari に比べて大幅に緩和される傾向があります。 の -O
直交表現のオプションは、次の最適化フラグをオンにします。
-fsimplify_expressions -feliminate_zeros
-o ディレクトリ、 - 出力ディレクトリ ディレクトリにジョブを開始します。
生成されたファイルを書き込むディレクトリを指定します。 デフォルト
出力ディレクトリは、現在の ('.') ディレクトリです。
-q ルール、 --直交則 ルール
フォームを統合するときに使用する求積規則を指定します。 これ
テンソル表現と求積表現の両方に影響します。 現在利用可能なオプション
「デフォルト」と「正規」です。 「デフォルト」オプションは手動で実装されたものをカバーします
精度が以下の三角形および四面体の求積規則
またはXNUMXに等しい。 「標準」オプションは、FIAT に依存して直角位相を計算します。
シンプライスにマッピングされた Gauss--Legendre--Jacobi ルールに基づくルール。 による
デフォルトでは、FFC は「デフォルト」オプションを使用しようとします。これは通常、次のような結果になります。
最も効率的なコードが生成されます。 これが不可能な場合 (多項式の場合)
被積分関数の次数が XNUMX より大きいか、セルが「三角形」の XNUMX つではない場合
または「四面体」)、FFC は自動的に「標準」ルールを適用します。 番号が
「正規」ルールで使用される積分点が大きすぎて効率的ではありません
計算、オプション -fquadrature_degree に使える。
バグ
コメント、質問、バグレポートなどは、 [メール保護].
onworks.net サービスを使用してオンラインで FFC を使用する