pyNastran  0.5.0
pyNastran BDF Reader/Writer, OP2 Parser, and GUI
pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject Class Reference

Inherits stressObject.

List of all members.

Public Member Functions

def __init__
def deleteTransient
def getTransients
def addNewTransient
def addSort1
def writeF06
 ELEMENT-ID = 102 N O N L I N E A R S T R E S S E S I N R O D E L E M E N T S ( C R O D ) TIME AXIAL STRESS EQUIVALENT TOTAL STRAIN EFF.
def __repr__

Public Attributes

 eTypeMap
 code
 eType
 axialStress
 equivStress
 totalStrain
 effectivePlasticCreepStrain
 effectiveCreepStrain
 linearTorsionalStress
 dt
 add

Detailed Description

Definition at line 302 of file oes_nonlinear.py.


Constructor & Destructor Documentation

def pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.__init__ (   self,
  dataCode,
  isSort1,
  iSubcase,
  dt = None 
)

Definition at line 303 of file oes_nonlinear.py.


Member Function Documentation

Definition at line 343 of file oes_nonlinear.py.

References pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.axialStress, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.effectiveCreepStrain, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.effectivePlasticCreepStrain, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.equivStress, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.linearTorsionalStress, and pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.totalStrain.

Referenced by pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStrainObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStrainObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_beams.BeamStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_triax.TriaxStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.addNewEidSort2(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStressObject.addNewEidSort2(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.addNewEidSort2(), pyNastran.op2.tables.ogf_gridPointForces.ogf_Objects.gridPointForcesObject.addSort1(), pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses.GridPointStressesObject.addSort1(), pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses.GridPointStressesVolumeObject.addSort1(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.addSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStressObject.processF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStrainObject.processF06Data(), pyNastran.op2.tables.ogf_gridPointForces.ogf_Objects.gridPointForcesObject.updateDt(), pyNastran.op2.tables.oes_stressStrain.real.oes_objects.stressObject.updateDt(), pyNastran.op2.tables.oes_stressStrain.real.oes_objects.strainObject.updateDt(), and pyNastran.op2.resultObjects.op2_Objects.scalarObject.updateDt().

Definition at line 351 of file oes_nonlinear.py.

References pyNastran.op2.tables.oes_stressStrain.complex.oes_springs.ComplexCelasStressObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearQuadObject.addNewTransient(), pyNastran.op2.tables.oee_energy.oee_objects.StrainEnergyObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStressObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStressObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStressObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.complex.oes_springs.ComplexCelasStrainObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.HyperelasticQuadObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStrainObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.real.oes_beams.BeamStrainObject.addNewTransient, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStrainObject.addNewTransient(), pyNastran.op2.resultObjects.tableObject.ComplexTableObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStrainObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.axialStress, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.effectiveCreepStrain, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.effectivePlasticCreepStrain, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.equivStress, pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodDamperObject.eType, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearQuadObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStressObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStressObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_springs.ComplexCelasStressObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStressObject.eType, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.HyperelasticQuadObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_springs.ComplexCelasStrainObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStrainObject.eType, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStrainObject.eType, pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStrainObject.eType, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.linearTorsionalStress, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.totalStrain, and pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.writeF06().

def pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.writeF06 (   self,
  header,
  pageStamp,
  pageNum = 1,
  f = None,
  isMagPhase = False 
)

ELEMENT-ID = 102 N O N L I N E A R S T R E S S E S I N R O D E L E M E N T S ( C R O D ) TIME AXIAL STRESS EQUIVALENT TOTAL STRAIN EFF.

STRAIN EFF. CREEP LIN. TORSIONAL STRESS PLASTIC/NLELAST STRAIN STRESS 2.000E-02 1.941367E+01 1.941367E+01 1.941367E-04 0.0 0.0 0.0 3.000E-02 1.941367E+01 1.941367E+01 1.941367E-04 0.0 0.0 0.0

Definition at line 373 of file oes_nonlinear.py.

References pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.effectiveCreepStrain, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.effectivePlasticCreepStrain, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.equivStress, pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.linearTorsionalStress, and pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.totalStrain.

Referenced by pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.SPCForcesObject.__repr__(), pyNastran.op2.tables.ogf_gridPointForces.ogf_Objects.gridPointForcesObject.__repr__(), pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.ComplexSPCForcesObject.__repr__(), pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses.GridPointStressesObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.addSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_triax.TriaxStressObject.writeF06Transient(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.writeF06Transient(), pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses.GridPointStressesVolumeObject.writeF06Transient(), pyNastran.op2.tables.oes_stressStrain.real.oes_triax.TriaxStrainObject.writeF06Transient(), and pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.writeF06Transient().

Definition at line 401 of file oes_nonlinear.py.

References pyNastran::f06::f06_classes::MaxDisplacement.writeF06(), pyNastran.op2.resultObjects.op2_Objects.baseScalarObject.writeF06(), pyNastran.op2.tables.lama_eigenvalues.lama_objects.RealEigenvalues.writeF06(), pyNastran.op2.tables.oes_stressStrain.complex.oes_springs.ComplexCelasStressObject.writeF06(), pyNastran.op2.tables.lama_eigenvalues.lama_objects.ComplexEigenvalues.writeF06(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearQuadObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStressObject.writeF06(), pyNastran.f06.f06Writer.F06Writer.writeF06(), pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStressObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.HyperelasticQuadObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStressObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStrainObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStrainObject.writeF06(), and pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStrainObject.writeF06().

Referenced by pyNastran.bdf.cards.elements.bars.CROD.displacementStress(), pyNastran.bdf.cards.elements.bars.CBAR.Stiffness(), and pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.writeF06().


Member Data Documentation

Definition at line 303 of file oes_nonlinear.py.

Referenced by pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_beams.BeamStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_beams.BeamStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStressObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStrainObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_beams.BeamStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStressObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStressObject.addF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.addF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStrainObject.addF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStressObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStrainObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStressObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStrainObject.addNewEid(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.addNewEid100(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStressObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.addNewEidSort2(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStrainObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStrainObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRodObject.addSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStressObject.processF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_solids.SolidStrainObject.processF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStrainObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.writeF06(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.writeF06Transient(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStressObject.writeF06Transient(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStrainObject.writeF06Transient(), pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.CompositePlateStrainObject.writeF06Transient(), and pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStrainObject.writeF06Transient().

Definition at line 303 of file oes_nonlinear.py.

Referenced by pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.SPCForcesObject.__repr__(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.__repr__(), pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.MPCForcesObject.__repr__(), pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.ComplexSPCForcesObject.__repr__(), pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.ComplexMPCForcesObject.__repr__(), pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.SPCForcesObject.__reprTransient__(), pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.MPCForcesObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStressObject.__reprTransient__(), pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.ComplexSPCForcesObject.__reprTransient__(), pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.ComplexMPCForcesObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.__reprTransient__(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStressObject.addF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.addF06Data(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStrainObject.addNewEidSort1(), pyNastran.op2.tables.oes_stressStrain.real.oes_springs.CelasStressObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.real.oes_beams.BeamStressObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.real.oes_bars.BarStressObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.addNewTransient(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStressObject.getTransients(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStressObject.getTransients(), pyNastran.op2.tables.oes_stressStrain.real.oes_plates.PlateStressObject.getTransients(), pyNastran.op2.tables.oes_stressStrain.real.oes_shear.ShearStrainObject.getTransients(), pyNastran.op2.tables.oes_stressStrain.real.oes_beams.BeamStrainObject.getTransients(), pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.getTransients(), pyNastran.bdf.cards.dynamic.TSTEP.reprFields(), pyNastran.op2.tables.ogf_gridPointForces.ogf_Objects.gridPointForcesObject.updateDt(), pyNastran.op2.tables.oes_stressStrain.real.oes_objects.stressObject.updateDt(), pyNastran.op2.tables.oes_stressStrain.real.oes_objects.strainObject.updateDt(), and pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodStrainObject.writeF06Transient().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables