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
doc:user:conditions:displacements [2015/01/08 11:28] bomandoc:user:conditions:displacements [2016/03/30 15:23] (current) – external edit 127.0.0.1
Line 3: Line 3:
 ===== Basic usage ===== ===== 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).
  
-=====  Variable boundary conditions ===== +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.1420712882.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki