Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:general:start

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:elements:general:start [2013/07/11 17:47] jorisdoc:user:elements:general:start [2016/03/30 15:23] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Introduction ======
  
 +
 +===== ElementProperties =====
 +
 +Metafor ''ElementProperties'' are used to associate physical properties to the meshed structure (whether with volume or shell elements). Each ''ElementProperties'' has a few properties which are associated to the corresponding type of element (see [[doc:user:elements:general:def_element_properties|ElementProperties definition]]). for example, the associated [[doc:user:elements:general:materials|material number]], the integration method chosen ((SRI/EAS)), ... They are also used to apply boundary conditions (pressure, thermal flux, ...) or to impose contact between two parts.
 +
 +=== Notes ===
 +
 +  * In [[doc:user:geometry:import:tuto2|Bacon]], an ''ElementProperties'' number is similar to an attribute number.
 +  * The use of an ''ElementProperties'' is really similar to the use of a [[doc:user:elements:general:materials|material]] (internally, in Metafor, a material is an adapter towards a ''MaterialProperties'') or a [[doc:user:elements:volumes:start|material law]] (''MaterialLawProperties''). For those who know about [[doc:user:general:glossaire#C++]], these three classes are instances of a single template. They have the same member functions: a ''put()'' to define a new entry, and a ''depend()'' to associate this value to some parameters
 +
 +
 +===== Interaction =====
 +
 +Initially, in Metafor, “''[[doc:user:start#interactions|Interaction]]''” were objects managing boundary conditions are contact only. The concept was extended to the generation of any type of element, including volume elements. They respect the following scheme:
 +
 +{{ doc:user:interact.gif |Interactions}}
 +
 +__Careful__:
 +
 +Two ''Interactions'' cannot have the same user number, even if they are associated to different types of elements. For example, a ''FieldApplicator'' (volume interaction) cannot have the same number as a ''ContactInteraction''.
 +
 +
 +
 +===== Links between Interaction and ElementProperties =====
 +
 +In practice, an ''ElementProperties'' must be associated to each ''[[doc:user:start#interactions|Interaction]]''. Then, Metafor transmits internally the ''ElementProperties'' of each element created by this ''Interaction''. In addition, the ''Interaction'' reads the type of element to generate from the associated ''ElementProperties''. Interactions are different depending on this type of element, leading to volume interactions, contact interactions, boundary conditions interactions... 
 +
 +This association of an ''ElementProperties'' and an ''Interaction'' is done by the command ''addProperty'':
 +
 +  interactionset(no).addProperty(prp)
 +
 +which adds the ''ElementProperties'' ''prp'' to the ''interaction'' number ''no''.
 +
 +In the data set, the best way to write this is a follow (example given for volume elements):
 +
 +    #1. Definition of the properties of finite volume element
 +    #----------------------------------------------------------
 +    prp1 = ElementProperties (Volume2DElement)    #Creates a property prp1 for finite volume elements
 +                                                  #and defines the type of element ''Volume2DElement'' 
 +    prp1.put (MATERIAL, 1)                        #Number of the associated material
 +    prp1.put (OMEGA_PT1, 101)                     #Number of the first point which defines the rotation axis
 +    prp1.put (OMEGA_PT2, 102)                     #Number of the second point which defines the rotation axis
 +    prp1.put (OMEGA, Omega)                       #Sets a value to the rotational speed (in degree/s)
 +    
 +    fct1 = PieceWiseLinearFunction()              #Defines a ramp function for the evolution 
 +    fct1.setData(0.,0.)                           #of the rotational speed
 +    fct1.setData(1.,1.) 
 +    
 +    prp1.depend (OMEGA, fct1, Field1D(TM,RE))     #The effective rotational speed is equal to Omega*fct1 
 +                                                  #(and depends on the time)
 +    prp1.put (STIFFMETHOD,STIFF_ANALYTIC)         #Sets the calculation method of the stiffness matrix to analytic
 +                             
 +    prp1.put (CAUCHYMECHVOLINTMETH,VES_CMVIM_STD) #Sets the method of integration of stresses in the element 
 +                                                  #to standard (integrate deviatoric stresses and 
 +                                                  #pressure for each integration point, careful to locking!)
 +    
 +    #2. Generation of volume finite elements on the mesh
 +    #-----------------------------------------------------------
 +    app = FieldApplicator(1)                      #Creates a generator (number 1) of volume elements (interaction)  
 +    app.push(sideset(1))                          #Sets the side 1 (supposed meshed) as support
 +    app.addProperty(prp1)                         #Assign the property prp1 to the future volume elements of the side 1 
 +    interactionset.add(app)                       #Adds the generator number 1 (interaction) to the interaction set
 +
 +
 +__Careful:__ the command ''addProperty'' adds a reference to the ''ElementProperties'' in the ''Interaction'' and increments its number of references. consequently, modifying the 'p' after using this command will also modify the behavior of the ''Interaction''
 +
 +Another way to do this is with the commands:
 +
 +  prp = ElementProperties(typeEl)
 +  interactionset(no).addProperty(prp)
 +  prp.put(param1, valeur1)
 +  prp.depend(param1, fct1, lock1)  # optional
 +  prp.put(param2, valeur2)
 +  prp.depend(param2, fct2, lock2)  # optional
 +  ...
 +
 +However, to this day ''addProperty'' does not return a reference toward the object. The following line is therefore NOT valid:
 +
 +  prp = interactionset(no).addProperty( ElementProperties(typeEl) )

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki