# Metafor

ULiege - Aerospace & Mechanical Engineering

### Sidebar

doc:user:conditions:displacements

# Prescribed Displacements

## Basic usage

A displacement can be prescribed to a set of nodes with an evolution function and the object LoadingSet:

loadingset.define(target, field, ampl=0.0, fct=None,
incr=INCREMENTAL_LOAD)  
loadingset.define(target, field, ampl, fctMulti, fieldList,
incr=INCREMENTAL_LOAD)

with

 target GObject meshed geometric entity where the displacement is prescribed field Field1D variable to be prescribed ampl float amplitude fct Function function for time dependence fctMulti Function (spatiotemporal dependency) fieldList list of dependency fields incr enum = INCREMENTAL_LOAD : incremental (default) = TOTAL_LOAD : total (useful to apply initial displacement or for unreliable integration schemes)

The displacement is then given by

• INCREMENTAL_LOAD: u(t1) = u(t0) + ampl * (fct(t1)-fct(t0))
• TOTAL_LOAD: u(t) = ampl * fct(t)

Example:

## Activation/Deactivation of boundary conditions

Prescribed displacements can be added or removed during the computation.

It is useful to add some prescribed displacements for example when we want to avoid numerical vibrations or rigid body modes. Conversely, it is sometimes useful to drive a workpiece to a desired position, then to remove the prescribed displacements and let the workpiece deform freely.

For any calculation, the simulation time is automatically divided into several stages (Stage objects) using the setNextTime() method of the TimeStepManager.

For each stage, it is possible to activate (activate()) and deactivate (deactivate()) any Loading (including prescribed displacements).

After the configuration of the TimeStepManager, all the defined stages can be retrieved using:

stages = metafor.getStageManager()

### Example

Definition of a prescribed displacement on Curve #4 and deactivation during stage #1 (corresponding to the second stage since numbering starts with 0):

load1 = loadingset.define(curveset(4), Field1D(TY,RE), 1.0, fct2)
load1.deactivate(stages[1])

Definition of a load on Curve #1, deactivated during stage #1 and activated for the next ones:

load2 = loadingset.define(curveset(1), Field1D(TY,RE), -0.1, fct1)
load2.activate(stages[1])