next up previous contents
Next: Hydraulic fluid Up: General Previous: Shapes   Contents

Subsections


Constitutive Laws

Every time a ``deformable'' entity requires a constitutive law, a template constitutive law is read. This has been implemented by means of C++ templates in order to allow the definition of a general constitutive law when possible. The ``deformable elements at present are rods, 1D, deformable hinges and deformable displacement hinges, 3D, and beams, 6D. Some constitutive laws are meaningful only when related to some precise dimension. In some specil cases, general purpose (genel) elements use 1D constitutive laws to express an arbitrary dependence of some value on a scalar state of the system. Table 2.6 shows the availability of each constitutive law.

Usually, constitutive laws can be directly defined when required, according to the definition of an element. However, the special card described in Section 2.3.1 allows to define constitutive laws stand-alone, and attach them to the elements by means of the following mechanism:

    <constitutive_law> ::=
        { <constitutive_law_definition>
            | <constitutive_law_reference> }

    <constitutive_law_reference> ::= reference , <label>
where <constitutive_law_definition> is described in the following, while <label> is the label of a previously defined constitutive law of the appropriate dimensionality, as described in Section 2.3.1.


Table 2.6: Constitutive laws dimensionality
Constitutive Law 1D 3D 6D
linear elastic, linear elastic isotropic x x x
linear elastic generic x x x
linear elastic generic axial torsion coupling     x
log elastic x    
linear elastic generic bi-stop x x x
double linear elastic x x  
isotropic hardening elastic x x x
linear viscous, linear viscous isotropic x x x
linear viscous generic x x x
linear viscoelastic, linear viscoelastic isotropic x x x
linear viscoelastic generic x x x
linear viscoelastic generic axial torsion coupling     x
double linear viscoelastic x x  
turbulent viscoelastic x    
linear viscoelastic generic bi-stop x x x
shock absorber x    

The constitutive laws are entered as follows:

    <constitutive_law_definition> ::= <specific_const_law>
        [ , prestress, (entity) <prestress> ]
        [ , prestrain, (entity_tpl_driver) <prestrain> ]
    <specific_const_law> ::= <const_law_name> ,
        <const_law_data>
where const_law_name is the name of the constitutive law and const_law_data depends on the specific constitutive law. The latter fields, whose type depends on the dimension of the constitutive law, are optional, under the assumption that the constitutive law is the last portion of a card, or that any ambiguity can be avoided. The data specific to the currently available constitutive laws must be entered as follows:

Linear elastic, linear elastic isotropic

    <specific_const_law> ::= linear elastic [ isotropic ] , 
        (scalar) <stiffness>
the isotropic stiffness coefficient; the word isotropic can be omitted, essentially because it has no meaning for scalar constitutive laws. Example:
    constitutive law: 1, name, "scalar isotropic law",
        1, linear elastic, 1.e9;
    constitutive law: 2, name, "3D isotropic law",
        3, linear elastic isotropic, 1.e9;
    constitutive law: 3, name, "6D isotropic law",
        6, linear elastic isotropic, 1.e9;

Linear elastic generic

    <specific_const_law> ::= linear elastic generic ,  
        (derivative_of_entity) <stiffness>
the stiffness matrix. In case of 1D, the type is scalar, and there is no distinction between generic and isotropic, while, in case of n x 1 vectors, the type is the corresponding n x n matrix. Example:
    constitutive law: 1, name, "scalar isotropic law",
        1, linear elastic generic, 1.e9;
    constitutive law: 2, name, "3D isotropic law",
        3, linear elastic generic,
            sym, 1.e9,  0.,    0.,
                        1.e6, -1.e5,
                               1.e6;
    constitutive law: 3, name, "6D isotropic law",
        6, linear elastic generic,
            diag, 1.e9, 1.e9, 1.e9, 1.e6, 1.e6, 1.e6;


Linear elastic generic axial torsion coupling

    <specific_const_law> ::= 
        linear elastic generic axial torsion coupling ,  
            (derivative_of_entity) <stiffness> ,
            (scalar) <coupling_coefficient>
this is defined only for 6 x 1 vectors, where the torsion stiffness, coefficient a44 in the stiffness matrix, depends linearly on the axial strain, $ \varepsilon_{1}^{}$, by means of coupling_coefficient, i.e. the run-time torsion stiffness is

a44 = GJ + coupling$\displaystyle \_coefficient$ . $\displaystyle \varepsilon_{1}^{}$.

This <coupling_coefficient>, in the classical nonlinear beam theory, is estimated according to some geometric property [1]; a general approach to the computation of prestressed beam properties is presented in [2], which is implemented in some versions of the ANBA software.

Log elastic

    <specific_const_law> ::= log elastic ,
        (derivative_of_entity) <stiffness>
this is defined only for scalars. The force is defined as:

\begin{displaymath}
f \ = \ \texttt{stiffness} \ \ensuremath{\mathrm{log}} \left( 1+\varepsilon \right)
\end{displaymath}

Linear elastic bi-stop generic

    <specific_const_law> ::= linear elastic bistop,
        (derivative_of_entity) <stiffness> ,
        [ initial state , { inactive | active } , ]
        (DriveCaller)<activating_condition> ,
        (DriveCaller)<deactivating_condition>

Double linear elastic

    <specific_const_law> ::= double linear elastic ,
        (scalar) <stiffness_1> ,
        (scalar) <upper_strain> ,
        (scalar) <lower_strain> ,
        (scalar) <stiffness_2>
this is defined for scalar and 3 x 1 vectors. In the scalar case the meaning of the entries is straightforward, while in case of 3 x 1 vectors, the constitutive law is isotropic but in the local direction 3, where, in case of strain out of the upper or lower bound, the stiffness_2 is used.

Isotropic hardening elastic

    <specific_const_law> ::= isotropic hardening elastic ,
        (scalar) <stiffness> ,
        (scalar) <reference_strain>
this constitutive law is defined as follows:

f  =  stiffness $\displaystyle {\frac{{
\alpha \left\vert \boldsymbol{\varepsilon} \right\vert ^2
}}{{
1+\alpha \left\vert \boldsymbol{\varepsilon} \right\vert ^2
}}}$$\displaystyle \varepsilon$

where $ \alpha$ = 3/$ \left\vert\vphantom{ \texttt{reference\_strain} }\right.$reference$ \_strain$$ \left.\vphantom{ \texttt{reference\_strain} }\right\vert^{2}_{}$. The resulting constitutive law, in the scalar case, is somewhat soft when $ \varepsilon$ is smaller than reference_strain, while it grows to quasi-linear for higher $ \varepsilon$s

Linear viscous, linear viscous isotropic

    <specific_const_law> ::= linear viscous [ isotropic ] , 
        (scalar) <viscosity_coefficient>
the linear viscous coefficient.
Note: this constitutive law does not require any prestrain template drive caller.

Linear viscous generic

    <specific_const_law> ::= linear viscous generic , 
        (derivative_of_entity) <viscosity_matrix>
the linear viscous matrix.
Note: this constitutive law does not require any prestrain template drive caller.

Linear viscoelastic, linear viscoelastic isotropic

    <specific_const_law> ::= linear viscoelastic [ isotropic ] ,
        (scalar) <stiffness> ,
        { (scalar) <viscosity_coefficient>
        | proportional, (scalar) <factor> }
the isotropic stiffness and viscosity coefficients.

Linear viscoelastic generic

    <specific_const_law> ::= linear viscoelastic generic ,  
        (derivative_of_entity) <stiffness> ,
        { (derivative_of_entity) <viscosity_matrix> 
        | proportional, (scalar) <factor> }
the linear stiffness and viscosity matrices.

Linear viscoelastic generic axial torsion coupling

    <specific_const_law> ::= 
        linear viscoelastic generic axial torsion coupling ,  
            (derivative_of_entity) <stiffness> ,
            { (derivative_of_entity) <viscosity_matrix> 
            | proportional, (scalar) <factor> }
            (scalar) <coupling_coefficient>
this is defined only for 6 x 1 vectors; it is the viscoelastic extension of the linear elastic generic axial torsion coupling constitutive law.

Double linear viscoelastic

    <specific_const_law> ::= double linear viscoelastic ,
        (scalar) <stiffness_1> ,
        (scalar) <upper_strain> ,
        (scalar) <lower_strain> ,
        (scalar) <stiffness_2> ,
        (scalar) <viscosity_coefficient>
this is analogous to the double linear elastic constitutive law, except for the isotropic viscosity term.

Turbulent viscoelastic

    <specific_const_law> ::= turbulent viscoelastic ,
        (scalar) <stiffness> ,
        (scalar) <parabolic_viscous_coefficient>
        [ , (scalar) <threshold> 
            [ , (scalar) <linear_viscous_coefficient> ] ]
the constitutive law has the form:

f  =  stiffness $\displaystyle \boldsymbol\varepsilon$ + k $\displaystyle \dot{{\boldsymbol{\varepsilon}}}$

where:

k = $\displaystyle \left\{\vphantom{ \begin{array}{ lcr }
\texttt{linear\_viscous\...
...ymbol{\dot{\varepsilon}} \right\vert > \texttt{threshold}
\end{array} }\right.$$\displaystyle \begin{array}{ lcr }
\texttt{linear\_viscous\_coefficient} & & ...
...rt \boldsymbol{\dot{\varepsilon}} \right\vert > \texttt{threshold}
\end{array}$

if threshold is null, or not defined, the constitutive law is always parabolic. If the linear_viscous_coefficient is not defined, it is computed based on parabolic_viscous_coefficient and on threshold to give a continuous force curve (with discontinuous slope). Otherwise, it can be set by the user to give a discontinuous force curve, as observed in some fluids at intermediate Reynolds number.

Linear viscoelastic bi-stop generic

    <specific_const_law> ::= linear viscoelastic bistop ,
        (derivative_of_entity) <stiffness> ,
        (derivative_of_entity) <viscosity_coefficient> ,
        [ initial state , { inactive | active } , ]
        (DriveCaller)<activating_condition> ,
        (DriveCaller)<deactivating_condition>

GRAALL damper

This is a very experimental constitutive law, based on a nonlinear model for a hydraulic damper to be used in landing gear modeling. Basically, it requires the user to supply the name of the GRAALL-style input file with damper data. It will be documented as soon as it reaches an appreciable level of stability. See also the shock absorber constitutive law.


shock absorber

This constitutive law implements a landing gear hydraulic shock absorber:
    <specific_const_law> ::= shock absorber ,
        [ prestrain , <value> , ]
        <reference pressure> ,
        <reference area for force computation> ,
        <interaction coefficient> ,
        <polytropic exponent> ,
        [ epsilon max , <upper strain bound> , ]
        [ epsilon min , <lower strain bound> , ]
        [ penalty , <penalty factor for strain> , 
            <penalty factor for strain rate> , ]
        [ metering , <metering area> ,
            [ negative , <metering area for negative strain rate> , ]
        [ orifice , <orifice area> , ]
        <fluid area> ,
        <fluid density> ,
        <drag coefficient / reference length
                (scales strain rate to velocity)>
        [ , friction, <reference epsilon prime> ,
                 <friction amplitude coefficient> ]
where This constitutive law adds the entities described in Table 2.7 to the output of the element it is used for. The table also indicates the names that can be used to reference the entities as element private data.


Table 2.7: Shock absorber output data
entity name
gas pressure p
metering area A
elastic force Fe
viscous force Fv


next up previous contents
Next: Hydraulic fluid Up: General Previous: Shapes   Contents
MBDyn: MultiBody Dynamics Software
Document version: 1.2.6
Last update: Wed Feb 1, 2006
Maintained by mbdyn@aero.polimi.it