Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:conditions:displacements

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:user:conditions:displacements [2013/07/12 13:26] – created jorisdoc:user:conditions:displacements [2016/03/30 15:23] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Prescribed Displacements ======
 +
 +===== Basic usage =====
 +{{:doc:user:ico-beginner.png?40 |Beginner}}
 +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
 +|< 100% 8em - - >|
 +|''target''          | ''GObject''  | meshed geometric entity where the displacement is prescribed |
 +|''field''           | ''Field1D''  | variable to be prescribed              |
 +|''ampl''            | ''float''    | amplitude                              |
 +|''fct''             | ''[[doc:user:general:fonctions|Function]]'' | function for time dependence |
 +|''fctMulti'' {{:doc:user:ico-advanced.png?18|Advanced}}        | ''[[doc:user:general:fonctions|Function]]'' | (spatiotemporal dependency) |
 +|''fieldList'' {{:doc:user:ico-advanced.png?18|Advanced}}                    | list of dependency fields  |
 +|''incr'' {{:doc:user:ico-advanced.png?18|Advanced}}            | ''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:__ FIXME
 +
 +\\
 +
 +=====  Activation/Deactivation of boundary conditions =====
 +{{:doc:user:ico-advanced.png?40 |Advanced}}
 +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 ''[[doc:user:integration:general:time_step|TimeStepManager]]''
 +
 +For each stage, it is possible to activate (''activate()'') and deactivate (''deactivate()'') any ''Loading'' (including prescribed displacements).
 +
 +After the configuration of the ''[[doc:user:integration:general:time_step|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.deactivate(stages[0])
 +  load2.activate(stages[1])
 +
 +These two loads are represented schematically as:
 +
 +|          ^  load1  ^  load2  ^
 +^ stage #0 |  ACTIVE    |  INACTIVE  |
 +^ stage #1 |  INACTIVE  |  ACTIVE    |
 +^ stage #2 |  INACTIVE  |  ACTIVE    |
 +
 +<note important>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.</note>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki