Search packages:

# KinemCNSEngine Class Reference

Inheritance diagram for KinemCNSEngine:
[legend]
Collaboration diagram for KinemCNSEngine:
[legend]

List of all members.

## Public Member Functions

void action ()
virtual void checkPyClassRegistersItself (const std::string &thisClassName) const
virtual string getBaseClassName (unsigned int i=0) const
virtual int getBaseClassNumber ()
virtual bool isActivated ()
bool operator!= (const Serializable &other)
bool operator== (const Serializable &other)
virtual boost::python::dict pyDict () const
virtual void pyHandleCustomCtorArgs (boost::python::tuple &args, boost::python::dict &kw)
virtual void pyRegisterClass (boost::python::object _scope)
virtual void pySetAttr (const std::string &key, const boost::python::object &value)
std::string pyStr ()
string representation of this object
void pyUpdateAttrs (const boost::python::dict &d)
REGISTER_BASE_CLASS_NAME (Factorable)
REGISTER_CLASS_NAME (Serializable)
REGISTER_CLASS_NAME (Factorable)
template<class ArchiveT >
void serialize (ArchiveT &ar, unsigned int version)
YADE_CLASS_BASE_DOC (GlobalEngine, Engine,"Engine that will generally affect the whole simulation (contrary to PartialEngine).")
YADE_CLASS_BASE_DOC_ATTRS_CTOR (KinemCNSEngine, KinemSimpleShearBox,"To apply a Constant Normal Stifness (CNS) shear for a parallelogram box (simple shear)\n\nThis engine, useable in simulations implying one deformable parallelepipedic box, allows to translate horizontally the upper plate while the lateral ones rotate so that they always keep contact with the lower and upper walls. The upper plate can move not only horizontally but also vertically, so that the normal rigidity defined by DeltaF(upper plate)/DeltaU(upper plate) = constant (= *KnC* defined by the user).\n\nThe movement is moreover controlled by the user via a *shearSpeed* which is the horizontal speed of the upper wall, and by a maximum value of horizontal displacement *gammalim* (of the upper plate), after which the shear stops.\n\n.. note::\n\t not only the positions of walls are updated but also their speeds, which is all but useless considering the fact that in the contact laws these velocities of bodies are used to compute values of tangential relative displacements.\n\n.. warning::\n\tBut, because of this last point, if you want to use later saves of simulations executed with this Engine, but without that stopMovement was executed, your boxes will keep their speeds => you will have to cancel them by hand in the .xml",((Real, shearSpeed, 0.0,,"the speed at wich the shearing is performed : speed of the upper plate [m/s]"))((Real, gammalim, 0.0,,"the value of tangential displacement (of upper plate) at wich the shearing is stopped [m]"))((Real, gamma, 0.0,,"current value of tangential displacement [m]"))((Real, KnC, 10.0e6,,"the normal rigidity chosen by the user [MPa/mm] - the conversion in Pa/m will be made")), temoin=0;it_stop=0;)

## Public Attributes

Scenescene
shared_ptr< TimingDeltastimingDeltas
precise profiling information (timing of fragments of the engine)
TimingInfo timingInfo
high-level profiling information; not serializable

## Protected Member Functions

void computeAlpha ()
void computeDY (Real KnC)
void computeScontact ()
void computeStiffness ()
void letMove (Real dgamma, Real dH)
void setBoxes_Dt ()
void stopMovement ()
YADE_CLASS_BASE_DOC_ATTRS_CTOR (KinemSimpleShearBox, BoundaryController,"This class is supposed to be a mother class for all Engines performing loadings on the simple shear box of :yref:SimpleShear. It is not intended to be used by itself, but its declaration and implentation will thus contain all what is useful for all these Engines. The script simpleShear.py illustrates the use of the various corresponding Engines.",((Real, alpha, Mathr::PI/2.0,,"the angle from the lower box to the left box (trigo wise). Measured by this Engine, not to be changed by the user."))((std::vector< Real >, temoin_save,,,"vector (same length as 'gamma_save' for ex), with 0 or 1 depending whether the save for the corresponding value of gamma has been done (1) or not (0). Not to be changed by the user."))((Body::id_t, id_topbox, 3,,"the id of the upper wall"))((Body::id_t, id_boxbas, 1,,"the id of the lower wall"))((Body::id_t, id_boxleft, 0,,"the id of the left wall"))((Body::id_t, id_boxright, 2,,"the id of the right wall"))((Body::id_t, id_boxfront, 5,,"the id of the wall in front of the sample"))((Body::id_t, id_boxback, 4,,"the id of the wall at the back of the sample"))((Real, max_vel, 1.0,,"to limit the speed of the vertical displacements done to control $\\sigma$ (CNL or CNS cases) [$m/s$]"))((Real, wallDamping, 0.2,,"the vertical displacements done to to control $\\sigma$ (CNL or CNS cases) are in fact damped, through this wallDamping"))((bool, firstRun, true,,"boolean set to false as soon as the engine has done its job one time : useful to know if initial height of, and normal force sustained by, the upper box are known or not (and thus if they have to be initialized). Not to be changed by the user."))((Real, f0, 0.0,,"the (vertical) force acting on the upper plate on the very first time step (determined by the Engine). Controls of the loadings in case of :yref:KinemCNSEngine or :yref:KinemCNLEngine will be done according to this initial value [$N$]. Not to be changed by the user.]"))((Real, y0, 0.0,,"the height of the upper plate at the very first time step : the engine finds its value [$m$]. Not to be changed by the user."))((bool, LOG, false,,"boolean controling the output of messages on the screen"))((string, Key,"",,"string to add at the names of the saved files")), Scontact=0.0;dt=0.0;stiffness=0.0;dalpha=0.0;deltaH=0.0;)

## Protected Attributes

shared_ptr< Bodybackbox
shared_ptr< Bodyboxbas
Real dalpha
Real deltaH
Real dt
shared_ptr< Bodyfrontbox
shared_ptr< Bodyleftbox
shared_ptr< Bodyrightbox
Real Scontact
Real stiffness
shared_ptr< Bodytopbox

int it_stop
int temoin

## Detailed Description

Definition at line 15 of file KinemCNSEngine.hpp.

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index