FEModel

FEModel

class guwlib.FEModel

Instances of this class act as a container for all simulation parameters.

An FEModel instance carries general simulation parameters (e.g. discretization level) as well as spatial and time/loading data (e.g. plate, defects, transducers, excitation signals to be used in the simulation).

To create a valid GUWlib model, you have to instantiate an FEModel object in your python script. Override its setup_parameters() method to define your simulation by setting its variables. To set the model up in ABAQUS/CAE, call its setup_in_abaqus() method. See models/examples/ for reference.

Variables:
  • plate (Plate) – Plate of the FE model.

  • transducers (list[Transducer]) – A list with the transducers applied to the plate.

  • defects (list[Defect]) – A list with the defects (cracks, holes, …) of the plate.

  • load_cases (list[LoadCase]) – A list with load cases (transducer excitation data) for the simulation.

  • max_frequency (float) – Specifies the maximum frequency up to which the plate will be excited. Used to determine an appropriate mesh size.

  • elements_per_wavelength (int) – Number of elements per wavelength to be used for spatial discretization (decisive is the smallest wavelength in range [0, max_frequency] that occurs in the plate, according to the dispersion data of the material), (default: 16).

  • elements_in_thickness_direction (int) – Number of elements along the thickness direction of the plate to be used for spatial discretization (default: 8).

  • courant_number (float) – Used for the computation of the maximum time increment of the explicit solver, according to CFL condition (default: 0.5).

  • model_approach (str) – Specifies which script to use to build the FE model in ABAQUS/CAE, either 'point_force' or 'piezo_electric' (default: 'point_force').

Methods:

setup_parameters()

Abstract method to be overridden in inherent classes to set up the models parameters.

setup_in_abaqus()

Calls the function that creates the FE model in ABAQUS/CAE, depending on the model_approach attribute. A basic check for inconsistencies in the model definition is performed beforehand.

get_element_size_thickness()

Compute the required element size in thickness direction of the plate.

Returns:

(float) Element size used for in-thickness discretization of the plate.

get_element_size_in_plane()

Compute the required in-plane element size of the plate, based on the minimal wavelength occurring in the range [0, max_frequency].

Returns:

(float) Element size used for in-plane discretization of the plate.

get_max_time_increment()

Computes the maximum time increment according to the CFL condition with the desired courant number.

Returns:

(float) Maximum time increment used for time integration in ABAQUS/Explicit.