Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:conditions:displacements

This is an old revision of the document!


Imposed Displacements

Fixed displacements

A displacement is imposed to a set of nodes with an evolution function and the object LoadingSet:

loadingset.define(gObject, field, ampl, fct , incr)
loadingset.define(gObject, field, ampl, fctMultiChamps , fieldList, incr)
gObject meshed geometric entity where the displacement is imposed
field variable to be fixed
ampl amplitude
fct Functions y=f(t) (temporal dependency)
fctMultiChamps Functions y=f(t) (spatiotemporal dependency)
fieldList list of dependency fields
incr (optional) = 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)
loadingset.define(gObject, field, ampl, incr)
gObject meshed geometric entity where the displacement is imposed
field variable to be fixed
ampl amplitude = 0 by default
incr (optional) = INCREMENTAL_LOAD : incremental (default)
= TOTAL_LOAD : total (to set a non zero value or to set a remeshed configuration with respect to the origin)

Careful, it is not allowed to have a non zero amplitude in incremental. It would lead to a FATAL_ERROR.

Default value are used to fix nodes quite easily :

loadingset.define(gObject, field)

Dynamic fixed displacements

Fixed displacements can be added or removed during the computation. It is useful to avoid numerical vibrations or rigid body modes.

Time is divided into stages using setNextTime (see TimeStepManager). Then it is possible to activate (activate) and deactivate (deactivate) loads for each stage.

All these stages can be retrieved using (commands on the TimeStepManager must be done already):

stages = metafor.getStageManager()

Example : definition of a load on curve #4 and deactivation during stage #1 (corresponding to the second stage since numbers 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.deactivate(stages[0])
load2.activate(stages[1])

These two loads are represented schematically as :

load1 load2
phase #0 ACTIVE INACTIVE
phase #1 INACTIVE ACTIVE
phase #2 INACTIVE ACTIVE

:!: Order of operations :

    "Activation surpasses deactivation"

A node can indeed be part of two entities, one activated, one deactivated. But the operation of deactivation will be done first, then the activation, so such a node will be activated.

doc/user/conditions/displacements.1412669752.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki