pyfemtet.opt package
サブパッケージ
サブモジュール
モジュール内容
- class pyfemtet.opt.FEMOpt(fem=None, opt=None)[ソース]
ベースクラス:
object指定されたオプティマイザと FEM インターフェースを用いて有限要素法(FEM)最適化を管理するためのクラス。
- opt
最適化に使用されるオプティマイザのインスタンス。
- Type:
- パラメータ:
fem (AbstractFEMInterface, optional) – FEMインターフェースのインスタンス。デフォルトはNoneで、その場合はFemtetInterfaceが使用されます。
opt (AbstractOptimizer, optional) – オプティマイザのインスタンスです。デフォルトは None で、その場合は OptunaOptimizer が使用されます。
- add_categorical_parameter(name, initial_value=None, choices=None, properties=None, *, pass_to_fem=True, fix=False)[ソース]
- add_constraint(name, fun, lower_bound=None, upper_bound=None, args=None, kwargs=None, strict=True, using_fem=None)[ソース]
- add_fem(fem)[ソース]
- パラメータ:
fem (AbstractFEMInterface) –
- 戻り値の型:
OptimizationDataPerFEM
- add_parameter(name, initial_value=None, lower_bound=None, upper_bound=None, step=None, properties=None, *, pass_to_fem=True, fix=False)[ソース]
- add_sub_fidelity_model(name, sub_fidelity_model, fidelity)[ソース]
- パラメータ:
name (str) –
sub_fidelity_model (SubFidelityModel) –
- opt: AbstractOptimizer
- optimize(n_trials=None, n_parallel=1, timeout=None, wait_setup=True, confirm_before_exit=True, history_path=None, with_monitor=True, scheduler_address=None, seed=None)[ソース]
- class pyfemtet.opt.FemtetInterface(femprj_path=None, model_name=None, connect_method='auto', save_pdt='all', strictly_pid_specify=True, allow_without_project=False, open_result_with_gui=True, always_open_copy=False, parametric_output_indexes_use_as_objective=None)[ソース]
ベースクラス:
COMInterface最適化ツールから Femtet を制御します。
- パラメータ:
femprj_path (str, optional) – プロジェクトファイルへのパスです。指定されていない場合は、接続された Femtet から取得します。
model_name (str, optional) – モデルの名前です。指定されていない場合は、接続された Femtet から取得するか、Femtet がプロジェクトファイルを開いたときの最初のモデルを取得します。
connect_method (str, optional) – 接続方法です。デフォルトは 『auto』 です。他の有効な値は 『new』 または 『existing』 です。
save_pdt (str, optional) – 結果ファイルを保存する方法です。 『all』, 『optimal』 または 『none』 を指定できます。デフォルトは 『all』 です。
strictly_pid_specify (bool, optional) – Femtet 接続で PID を厳密に指定するかどうかです。デフォルトは True です。
allow_without_project (bool, optional) – プロジェクトなしでの実行を許可するかどうかです。デフォルトは False です。
open_result_with_gui (bool, optional) – 結果を GUI で開くかどうかです。デフォルトは True です。
parametric_output_indexes_use_as_objective (dict[int, str or float], optional) –
目的関数として使用するパラメトリック出力インデックスのリストとその方向です。指定されていない場合は None となり、パラメトリック出力は目的として使用されません。
注釈
インデックスは0から始まりますが、Femtet のパラメトリック解析ダイアログの結果出力設定タブには、1から始まる設定番号が表示されます。
警告
この引数を設定すると、femprj ファイルに設定されているパラメトリック解析スイープテーブルが削除されます。 スイープテーブルを削除したくない場合は、元のファイルをコピーしてください。
警告
コンストラクタで
strictly_pid_specify=Trueを指定しても、並列処理では接続の動作がstrictly_pid_specify=Falseのようになります。これは大きなオーバーヘッドによるものです。したがって、n_parallelが 2 以上の場合は、FEMOpt.optimize() を実行する前にすべての Femtet プロセスを閉じるべきです。Tip
Python と Femtet を接続する方法についての情報を探している場合は、
connect_femtet()を参照してください。- close(timeout=15, force=True)[ソース]
Destructor.
May not quit Femtet. If you want to quit certainly, Please use quit() method.
- com_members = {'Femtet': 'FemtetMacro.Femtet'}
- connect_femtet(connect_method='auto', pid=None)[ソース]
Femtet プロセスに接続します。
- パラメータ:
注釈
接続方法が 『new』 の場合、新しい Femtet プロセスを起動して接続します。pid は無視されます。
注釈
『existing』 の場合、既存の Femtet プロセスに接続します。ただし、接続できる Femtet がない場合(すなわち、他の Python または Excel プロセスにすでに接続されている場合)、例外をスローします。
注釈
『auto』 に設定されている場合、最初に 『existing』 を試み、失敗した場合は 『new』 で接続します。pid が指定されていて接続に失敗した場合、別の Femtet プロセスへの接続は試みません。
- load_objectives(*args, **kwargs)
- property object_pass_to_fun
ユーザー定義目的関数の第1引数に渡されるオブジェクト。
- 戻り値:
Femtet の COM オブジェクト.
- 戻り値の型:
Femtet (CDispatch)
- postprocess(*args, **kwargs)
- preprocess(*args, **kwargs)
- solve(*args, **kwargs)
- update(*args, **kwargs)
- update_model(*args, **kwargs)
- update_parameter(*args, **kwargs)
- class pyfemtet.opt.FemtetWithNXInterface(prt_path, femprj_path=None, model_name=None, connect_method='auto', save_pdt='all', strictly_pid_specify=True, allow_without_project=False, open_result_with_gui=True, parametric_output_indexes_use_as_objective=None, always_open_copy=False, export_curves=None, export_surfaces=None, export_solids=None, export_flattened_assembly=None)[ソース]
ベースクラス:
FemtetInterface,_NXInterfaceFemtet と NX を制御します。
このクラスを使用すると、NX で作成された CAD ファイルを Parasolid 形式を介して Femtet プロジェクトにインポートできます。これにより、設計変数を NX に渡し、モデルを更新し、更新されたモデルを使用して Femtet で解析を実行することができます。
- パラメータ:
prt_path (str) – インポート元の CAD データを含む .prt ファイルへのパスです。
export_curves (bool or None, optional) – デフォルトは None です。
export_surfaces (bool or None, optional) – デフォルトは None です。
export_solids (bool or None, optional) – デフォルトは None です。
export_flattened_assembly (bool or None, optional) – デフォルトは None です。
femprj_path (str) –
model_name (str) –
connect_method (str) –
save_pdt (str) –
strictly_pid_specify (bool) –
allow_without_project (bool) –
open_result_with_gui (bool) –
parametric_output_indexes_use_as_objective (dict[int, str | float]) –
メモ
`export_*`引数は NX の Parasolid エクスポート設定を設定します。None の場合、PyFemtet は NX の現在の設定を変更しません。Femtet にインポートされた Parasolid をエクスポートする際に使用された設定から、これらの値を変更しないことを推奨します。
- class pyfemtet.opt.FemtetWithSolidworksInterface(sldprt_path, femprj_path=None, model_name=None, connect_method='auto', save_pdt='all', strictly_pid_specify=True, allow_without_project=False, open_result_with_gui=True, parametric_output_indexes_use_as_objective=None, always_open_copy=False, close_solidworks_on_terminate=False, solidworks_visible=True)[ソース]
ベースクラス:
FemtetInterface,SolidworksInterface,AbstractFEMInterfaceFemtet と SolidWorks の操作を統合するインターフェースクラス。
このクラスは、Femtet と SolidWorks のインターフェースの機能を組み合わせており、シミュレーション(Femtet)と CAD 操作(SolidWorks)間の連携動作を可能にします。
- パラメータ:
sldprt_path (str) – SolidWorks 部品ファイル(.sldprt)へのパス。
femprj_path (str, optional) – Femtetプロジェクトファイル(.femprj)へのパス。デフォルトはNoneです。
model_name (str, optional) – プロジェクト内のモデル名。デフォルトは None です。
connect_method (str, optional) – 接続方法です。』new』 、 『existing』 、または 『auto』 を指定できます。デフォルトは 『auto』 です。
save_pdt (str, optional) – 保存するデータを指定します。デフォルトは「all」です。
strictly_pid_specify (bool, optional) – Femtet 接続で PID を厳密に指定するかどうかです。デフォルトは True です。
allow_without_project (bool, optional) – プロジェクトなしでの実行を許可するかどうかです。デフォルトは False です。
open_result_with_gui (bool, optional) – 結果を GUI で開くかどうかです。デフォルトは True です。
parametric_output_indexes_use_as_objective (dict[int, str | float], optional) – 目的関数として使用されるパラメトリック出力のインデックス。デフォルトは None です。
always_open_copy (bool, optional) – True の場合、常にプロジェクトのコピーを開きます。デフォルトは False です。
close_solidworks_on_terminate (bool, optional) – True の場合、このオブジェクトが破棄されると SolidWorks は終了します。デフォルトは False です。
solidworks_visible (bool, optional) – True の場合、SolidWorks は表示モードで起動されます。初期値は True です。
- class pyfemtet.opt.OptunaOptimizer(sampler_class=None, sampler_kwargs=None)[ソース]
ベースクラス:
AbstractOptimizerハイパーパラメータ最適化のためにOptunaを利用するオプティマイザクラス。
このクラスはOptunaを使用して最適化解析を実施するためのインターフェースを提供します。スタディのライフサイクル、サンプラーの設定、およびトライアルの実行を管理します。
- current_trial
現在評価中の Optuna トライアル。
- Type:
optuna.trial.Trial | None
- パラメータ:
- 例外:
None –
サンプル
>>> optimizer = OptunaOptimizer() >>> optimizer.n_trials = 100 >>> optimizer.timeout = 600 >>> # Further configuration and usage...
- add_categorical_parameter(name, initial_value, choices, properties=None, *, pass_to_fem=True, fix=False)[ソース]
- add_parameter(name, initial_value, lower_bound=None, upper_bound=None, step=None, properties=None, *, pass_to_fem=True, fix=False)[ソース]
- study_name = 'pyfemtet-study'
- class pyfemtet.opt.ScipyOptimizer(method=None, tol=None)[ソース]
ベースクラス:
AbstractOptimizerSciPy の最適化手法を利用するオプティマイザクラス。
このクラスは SciPy の最適化ルーチンのラッパーとして機能し、最適化手法、許容誤差、およびオプションのカスタマイズを可能にします。また、拘束条件の取り扱いに対して強化およびスケーリングの機構を提供します。
- add_sub_fidelity_model(name, sub_fidelity_model, fidelity)[ソース]
- パラメータ:
name (str) –
sub_fidelity_model (SubFidelityModel) –