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

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:user:conditions:displacements [2015/01/08 11:23] bomandoc:user:conditions:displacements [2015/01/08 16:18] boman
Line 1: Line 1:
 ====== Prescribed Displacements ====== ====== Prescribed Displacements ======
  
-===== Fixed displacements =====+===== Basic usage =====
 {{:doc:user:ico-beginner.png?40 |Beginner}} {{:doc:user:ico-beginner.png?40 |Beginner}}
-A displacement is imposed to a set of nodes with an evolution function and the object ''LoadingSet'':+A displacement can be prescribed to a set of nodes with an evolution function and the object ''LoadingSet'':
  
-  loadingset.define(gObject, field, ampl, fct , incr) +  loadingset.define(target, field, ampl=0.0, fct=None 
-  loadingset.define(gObject, field, ampl, fctMultiChamps , fieldList, incr)+                    incr=INCREMENTAL_LOAD)  
  
-|''gObject'' | meshed geometric entity where the displacement is imposed +  loadingset.define(target, field, ampl, fctMulti, fieldList,  
-|''field''   | variable to be fixed+                    incr=INCREMENTAL_LOAD) 
-|''ampl''   | amplitude | +with 
-|''fct''    | [[doc:user:general:fonctions]] (temporal dependency) +|< 100% 8em - - >| 
-|''fctMultiChamps ''    | [[doc:user:general:fonctions]] (spatiotemporal dependency) | +|''target''          | ''GObject''  | meshed geometric entity where the displacement is prescribed 
-|''fieldList''    | list of dependency fields +|''field''           | ''Field1D''  | variable to be prescribed              
-|''incr'' (optional)| = ''INCREMENTAL_LOAD'' : incremental (default)\\ = ''TOTAL_LOAD'' : total (useful to apply initial displacement or for unreliable integration schemes)|+|''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 The displacement is then given by
-  * INCREMENTAL_LOAD:  ''u(t1) = u(t0) + ampl * (fct(t1)-fct(t0))'' +  * ''INCREMENTAL_LOAD'':  ''u(t1) = u(t0) + ampl * (fct(t1)-fct(t0))'' 
-  * TOTAL_LOAD:        ''u(t) = ampl * fct(t)''+  * ''TOTAL_LOAD'':        ''u(t) = ampl * fct(t)''
  
  
-  loadingset.define(gObject, field, ampl, incr)+__Example:__ FIXME
  
-|''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 incrementalIt would lead to a ''FATAL_ERROR''.+=====  Activation/Deactivation of boundary conditions ===== 
 +{{:doc:user:ico-advanced.png?40 |Advanced}} 
 +Prescribed displacements can be added or removed during the computation
  
-Default value are used to fix nodes quite easily : +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.
  
-  loadingset.define(gObjectfield)+For any calculationthe simulation time is automatically divided into several stages (''Stage'' objectsusing 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).
  
-=====  Dynamic fixed displacements ===== +After the configuration of the ''[[doc:user:integration:general:time_step|TimeStepManager]]'', all the defined stages can be retrieved using:
-{{:doc:user:ico-advanced.png?40 |Advanced}} +
-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 [[doc:user:integration:general:time_step|TimeStepManager]])Then it is possible to activate (''activate''and deactivate (''deactivate'') loads for each stage.+  stages = metafor.getStageManager()
  
-All these stages can be retrieved using (commands on the [[doc:user:integration:general:time_step|TimeStepManager]] must be done already): +==== Example ====
- +
-  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):+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 = loadingset.define(curveset(4), Field1D(TY,RE), 1.0, fct2)
   load1.deactivate(stages[1])   load1.deactivate(stages[1])
  
-Definition of a load on curve #1, deactivated during stage #1 and activated for the next ones:+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 = loadingset.define(curveset(1), Field1D(TY,RE), -0.1, fct1)
   load2.deactivate(stages[0])   load2.deactivate(stages[0])
   load2.activate(stages[1])   load2.activate(stages[1])
  
-These two loads are represented schematically as :+These two loads are represented schematically as:
  
 |          ^  load1  ^  load2  ^ |          ^  load1  ^  load2  ^
-phase #0 |  ACTIVE    |  INACTIVE | +stage #0 |  ACTIVE    |  INACTIVE  
-phase #1 |  INACTIVE  |  ACTIVE   +stage #1 |  INACTIVE  |  ACTIVE    
-phase #2 |  INACTIVE  |  ACTIVE   |+stage #2 |  INACTIVE  |  ACTIVE    |
  
-:!: Order of operations :+<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>
  
-      "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.txt · Last modified: 2016/03/30 15:23 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki