class pyfemtet.opt.femopt.FEMOpt(fem=None, opt=None)[source]

Bases: object

A class to manage finite element method (FEM) optimization using a specified optimizer and FEM interface.

opt

The optimizer instance to be used for optimization.

Type:

AbstractOptimizer

monitor_info

Dictionary to store monitoring information such as host and port.

Type:

dict[str, str | int | None]

Parameters:
  • fem (AbstractFEMInterface, optional) – An instance of a FEM interface. Defaults to None, in which case a FemtetInterface is used.

  • opt (AbstractOptimizer, optional) – An optimizer instance. Defaults to None, in which case OptunaOptimizer is used.

add_categorical_parameter(name, initial_value=None, choices=None, properties=None, *, pass_to_fem=True, fix=False)[source]
Parameters:
Return type:

None

add_constant_value(name, value, properties=None, *, pass_to_fem=True)[source]
Parameters:
add_constraint(name, fun, lower_bound=None, upper_bound=None, args=None, kwargs=None, strict=True, using_fem=None)[source]
Parameters:
add_expression(name, fun, properties=None, args=None, kwargs=None, *, pass_to_fem=True)[source]
Parameters:
Return type:

None

add_expression_string(name, expression_string, properties=None, *, pass_to_fem=True)[source]
Parameters:
  • name (str) –

  • expression_string (str) –

  • properties (dict[str, ...] | None) –

  • pass_to_fem (bool) –

Return type:

None

add_expression_sympy(name, sympy_expr, properties=None, *, pass_to_fem=True)[source]
Parameters:
  • name (str) –

  • sympy_expr (Expr) –

  • properties (dict[str, ...] | None) –

  • pass_to_fem (bool) –

Return type:

None

add_fem(fem)[source]
Parameters:

fem (AbstractFEMInterface) –

Return type:

OptimizationDataPerFEM

add_objective(name, fun, direction='minimize', args=None, kwargs=None)[source]
Parameters:
Return type:

None

add_objectives(names, fun, n_return, directions=None, args=None, kwargs=None)[source]
Parameters:
add_other_output(name, fun, args=None, kwargs=None)[source]
Parameters:
add_parameter(name, initial_value=None, lower_bound=None, upper_bound=None, step=None, properties=None, *, pass_to_fem=True, fix=False)[source]
Parameters:
  • name (str) –

  • initial_value (float | None) –

  • lower_bound (float | None) –

  • upper_bound (float | None) –

  • step (float | None) –

  • properties (dict[str, ...] | None) –

  • pass_to_fem (bool) –

  • fix (bool) –

Return type:

None

add_sub_fidelity_model(name, sub_fidelity_model, fidelity)[source]
Parameters:
add_trial(parameters)[source]
Parameters:

parameters (dict[str, str | Real]) –

monitor_info: dict[str, str | int | None]
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)[source]
Parameters:
  • n_trials (int | None) –

  • n_parallel (int) –

  • timeout (float | None) –

  • wait_setup (bool) –

  • confirm_before_exit (bool) –

  • history_path (str | None) –

  • with_monitor (bool) –

  • scheduler_address (str | None) –

  • seed (int | None) –

set_monitor_host(host=None, port=None)[source]

Sets the host IP address and the port of the process monitor.

Parameters:
  • host (str) – The hostname or IP address of the monitor server.

  • port (int, optional) – The port number of the monitor server. If None, 8080 will be used. Defaults to None.

Tip

Specifying host 0.0.0.0 allows viewing monitor from all computers on the local network.

If no hostname is specified, the monitor server will be hosted on localhost.

We can access process monitor by accessing `localhost:8080` on our browser by default.

set_random_seed(seed)[source]
Parameters:

seed (int) –

set_termination_condition(func)[source]
Parameters:

func (Callable[[History], bool] | None) –

pyfemtet.opt.femopt.debug_1()[source]
pyfemtet.opt.femopt.debug_2()[source]
pyfemtet.opt.femopt.debug_3()[source]
pyfemtet.opt.femopt.substrate_size(Femtet)[source]

基板のXY平面上での専有面積を計算します。