Logo Search packages:      
Sourcecode: yade version File versions  Download package

Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes

KinemCNLEngine Class Reference

Inheritance diagram for KinemCNLEngine:
Inheritance graph
[legend]
Collaboration diagram for KinemCNLEngine:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void action ()
virtual void callPostLoad (void)
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 (KinemCNLEngine, KinemSimpleShearBox,"To apply a constant normal stress shear (i.e. Constant Normal Load : CNL) for a parallelogram box (simple shear box : :yref:`SimpleShear` Preprocessor or scripts/simpleShear.py)\n\nThis engine allows to translate horizontally the upper plate while the lateral ones rotate so that they always keep contact with the lower and upper walls.\n\nIn fact the upper plate can move not only horizontally but also vertically, so that the normal stress acting on it remains constant (this constant value is not chosen by the user but is the one that exists at the beginning of the simulation)\n\nThe right vertical displacements which will be allowed are computed from the rigidity Kn of the sample over the wall (so to cancel a deltaSigma, a normal dplt deltaSigma*S/(Kn) is set)\n\nThe movement is moreover controlled by the user via a *shearSpeed* which will be the speed of the upper wall, and by a maximum value of horizontal displacement *gammalim*, after which the shear stops.\n\n.. note::\n\tNot 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\tBecause 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.\n",((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]"))((std::vector< Real >, gamma_save,,,"vector with the values of gamma at which a save of the simulation is performed [m]")), 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

Private Attributes

int it_stop
int temoin

Detailed Description

Definition at line 16 of file KinemCNLEngine.hpp.


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

Generated by  Doxygen 1.6.0   Back to index