gemseo.problems.topology_optimization.fea_disc module#

Finite element analysis (FEA) for 2D topology optimization problems.

class FiniteElementAnalysis(nu=0.3, n_x=100, n_y=100, f_node=10200, f_direction=1, f_amplitude=-1, fixed_nodes=None, fixed_dir=None, name='')[source]#

Bases: Discipline

Finite Element Analysis for 2D topology optimization problems.

Take in input the Young Modulus vector E and computes in output the compliance, i.e. twice the work of external forces.

Initialize self. See help(type(self)) for accurate signature.

Parameters:
  • nu (float) --

    The material Poisson's ratio.

    By default it is set to 0.3.

  • n_x (int) --

    The number of elements in the x-direction.

    By default it is set to 100.

  • n_y (int) --

    The number of elements in the y-direction.

    By default it is set to 100.

  • f_node (int | Sequence[int]) --

    The indices of the nodes where the forces are applied.

    By default it is set to 10200.

  • f_direction (int | Sequence[int]) --

    The force direction for each f_node, either 0 for x or 1 for y.

    By default it is set to 1.

  • f_amplitude (int | Sequence[int]) --

    The force amplitude for each pair (f_node, f_direction).

    By default it is set to -1.

  • fixed_nodes (int | Sequence[int] | None) -- The indices of the nodes where the structure is clamped. If None, a default value is used.

  • fixed_dir (int | Sequence[int] | None) -- The clamped direction for each node, encode 0 for x and 1 for y. If None, a default value is used.

  • name (str) --

    The name of the discipline. If empty, use the name of the class.

    By default it is set to "".

compute_elementary_stiffeness_matrix()[source]#

Compute the elementary stiffness matrix of 1x1 quadrilateral elements.

Return type:

None

prepare_fea()[source]#

Prepare the Finite Element Analysis.

Return type:

None

cache: BaseCache | None#

The execution and linearization data saved according to the cache type.

execution_statistics: ExecutionStatistics#

The execution statistics of the process.

execution_status: ExecutionStatus#

The execution status of the process.

jac: JacobianData#

The Jacobian matrices of the outputs.

The structure is {output_name: {input_name: jacobian_matrix}}.

name: str#

The name of the process.