← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-dev/yade/trunk] Rev 2127: 1. Add doc/references.bib, which can be references from docstring using [Author2008]_ syntax (not...

 

------------------------------------------------------------
revno: 2127
committer: Václav Šmilauer <eudoxos@xxxxxxxx>
branch nick: trunk
timestamp: Mon 2010-04-05 00:05:37 +0200
message:
  1. Add doc/references.bib, which can be references from docstring using [Author2008]_ syntax (note the underscore).
  2. Added a few bibliography items to test, and changed relevant docstrings -- see e.g.
  https://www.yade-dem.org/sphinx/yade.wrapper.html#yade.wrapper.NewtonIntegrator.damping
added:
  doc/references.bib
modified:
  pkg/dem/DataClass/InteractionGeometry/ScGeom.hpp
  pkg/dem/DataClass/InteractionPhysics/NormalInelasticityPhys.hpp
  pkg/dem/Engine/GlobalEngine/CohesiveFrictionalPM.hpp
  pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp
  pkg/dem/Engine/GlobalEngine/Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity.hpp
  pkg/dem/Engine/GlobalEngine/NewtonIntegrator.hpp
  pkg/dem/meta/ConcretePM.hpp
  py/utils.py


--
lp:yade
https://code.launchpad.net/~yade-dev/yade/trunk

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription
=== added file 'doc/references.bib'
--- doc/references.bib	1970-01-01 00:00:00 +0000
+++ doc/references.bib	2010-04-04 22:05:37 +0000
@@ -0,0 +1,80 @@
+***************************
+
+This file contains publications references from docstrings (as [Author2008]_) of classes, in bibtex format.
+
+When adding new entries:
+
+	1. Keep entries in the form Author2008 (Author is the first author), Author2008b if repeated
+
+	2. Try to fill mandatory fields for given type of citations (http://en.wikipedia.org/wiki/Bibtex#Entry_Types)
+
+	3. Do not use \'{i} funny escapes for accents, put everything in straight utf-8 
+
+Thanks.
+
+***************************
+
+@inproceedings{Alonso2004,
+	title = {Micro-mechanical investigation of the granular ratcheting},
+	author = {F. Alonso-Marroquín and R. García-Rojo and H. J. Herrmann},
+	booktitle = {Cyclic Behaviour of Soils and Liquefaction Phenomena},
+	publisher = {Taylor \& Francis},
+	year = {2004},
+	month = {april},
+	isbn = {9058096203},
+	pages = {3--10},
+	editor = {T. Triantafyllidis},
+	url = {http://www.comphys.ethz.ch/hans/p/334.pdf}
+}
+
+@book{Allen1989,
+	author = {Allen, M. P. and Tildesley, D. J.},
+	title = {Computer simulation of liquids},
+	year = {1989},
+	isbn = {0-19-855645-4},
+	publisher = {Clarendon Press},
+	address = {New York, NY, USA},
+}
+
+@article{Chareyre2005,
+	author = {Bruno Chareyre and Pascal Villard},
+	title = {Dynamic Spar Elements and Discrete Element Methods in Two Dimensions for the Modeling of Soil-Inclusion Problems},
+	publisher = {ASCE},
+	year = {2005},
+	journal = {Journal of Engineering Mechanics},
+	volume = {131},
+	number = {7},
+	pages = {689-698},
+	url = {http://link.aip.org/link/?QEM/131/689/1},
+	doi = {10.1061/(ASCE)0733-9399(2005)131:7(689)}
+}
+
+@phdthesis{Scholtes2009,
+	author = { Luc Scholtès },
+	title = { Modélisation micromécanique des milieux granulaires partiellement saturés },
+	year = {2009},
+	school = {Institut National Polytechnique de Grenoble},
+	url = {http://tel.archives-ouvertes.fr/tel-00363961/en/}
+}
+
+@article{Scholtes2009b,
+	author = "L. Scholtès and B. Chareyre and F. Nicot and F. Darve",
+	title = "Micromechanics of granular materials with capillary effects",
+	journal = "International Journal of Engineering Science",
+	volume = "47",
+	number = "1",
+	pages = "64--75",
+	year = "2009",
+	issn = "0020-7225",
+	doi = "DOI: 10.1016/j.ijengsci.2008.07.002",
+	url = "http://www.sciencedirect.com/science/article/B6V32-4TDJGDJ-1/2/9878efa5e573197aff6ee14d5abb58a2";,
+}
+
+@proceedings{DeghmReport2006,
+	title={Annual Report 2006},
+	year={2006},
+	editor={F. V. Donzé},
+	organization={Discrete Element Group for Hazard Mitigation},
+	publisher={Université Joseph Fourier, Grenoble},
+	url={ http://geo.hmg.inpg.fr/frederic/Discrete_Element_Group_FVD.html }
+}

=== modified file 'pkg/dem/DataClass/InteractionGeometry/ScGeom.hpp'
--- pkg/dem/DataClass/InteractionGeometry/ScGeom.hpp	2010-03-09 14:20:36 +0000
+++ pkg/dem/DataClass/InteractionGeometry/ScGeom.hpp	2010-04-04 22:05:37 +0000
@@ -29,7 +29,7 @@
 
 		void updateShearForce(Vector3r& shearForce, Real ks, const Vector3r& prevNormal, const State* rbp1, const State* rbp2, Real dt, bool avoidGranularRatcheting=true);
 
-	YADE_CLASS_BASE_DOC_ATTRS_INIT_CTOR_PY(ScGeom,GenericSpheresContact,"Class representing :yref:`geometry<InteractionGeometry>` of two :yref:`spheres<Sphere>` in contact. The contact has 3 DOFs (normal and 2×shear) and uses incremental algorithm for updating shear. (For shear formulated in total displacements and rotations, see :yref:`Dem3DofGeom` and related classes).\n\nWe use symbols :math:`\\vec{x}`, :math:`\\vec{v}`, :math:`\\vec{\\omega}` respectively for position, linear and angular velocities (all in global coordinates) and :math:`r` for particles radii; subscripted with 1 or 2 to distinguish 2 spheres in contact. Then we compute unit contact normal\n\n.. math::\n\n\t\\vec{n}=\\frac{\\vec{x}_2-\\vec{x}_1}{||\\vec{x}_2-\\vec{x}_1||}\n\nRelative velocity of spheres is then\n\n.. math::\n\n\t\\vec{v}_{12}=(\\vec{v}_2+\\vec{\\omega}_2\\times(-r_2\\vec{n}))-(\\vec{v}_1+\\vec{\\omega}_1\\times(r_1\\vec{n}))\n\nand its shear component\n\n.. math::\n\n\t\\Delta\\vec{v}_{12}^s=\\vec{v}_{12}-(\\vec{n}\\cdot\\vec{v}_{12})\\vec{n}.\n\nTangential displacement increment over last step then reads\n\n.. math::\n\n\t\\vec{x}_{12}^s=\\Delta t \\vec{v}_{12}^s.",
+	YADE_CLASS_BASE_DOC_ATTRS_INIT_CTOR_PY(ScGeom,GenericSpheresContact,"Class representing :yref:`geometry<InteractionGeometry>` of two :yref:`spheres<Sphere>` in contact. The contact has 3 DOFs (normal and 2×shear) and uses incremental algorithm for updating shear. (For shear formulated in total displacements and rotations, see :yref:`Dem3DofGeom` and related classes).\n\nWe use symbols $\\vec{x}$, $\\vec{v}$, $\\vec{\\omega}$ respectively for position, linear and angular velocities (all in global coordinates) and $r$ for particles radii; subscripted with 1 or 2 to distinguish 2 spheres in contact. Then we compute unit contact normal\n\n.. math::\n\n\t\\vec{n}=\\frac{\\vec{x}_2-\\vec{x}_1}{||\\vec{x}_2-\\vec{x}_1||}\n\nRelative velocity of spheres is then\n\n.. math::\n\n\t\\vec{v}_{12}=(\\vec{v}_2+\\vec{\\omega}_2\\times(-r_2\\vec{n}))-(\\vec{v}_1+\\vec{\\omega}_1\\times(r_1\\vec{n}))\n\nand its shear component\n\n.. math::\n\n\t\\Delta\\vec{v}_{12}^s=\\vec{v}_{12}-(\\vec{n}\\cdot\\vec{v}_{12})\\vec{n}.\n\nTangential displacement increment over last step then reads\n\n.. math::\n\n\t\\vec{x}_{12}^s=\\Delta t \\vec{v}_{12}^s.",
 		((Vector3r,contactPoint,Vector3r::ZERO,"Reference point of the contact. |ycomp|"))
 		#ifdef SCG_SHEAR
 			((Vector3r,shear,Vector3r::ZERO,"Total value of the current shear. Update the value using ScGeom::updateShear. |ycomp|"))

=== modified file 'pkg/dem/DataClass/InteractionPhysics/NormalInelasticityPhys.hpp'
--- pkg/dem/DataClass/InteractionPhysics/NormalInelasticityPhys.hpp	2010-03-23 14:19:56 +0000
+++ pkg/dem/DataClass/InteractionPhysics/NormalInelasticityPhys.hpp	2010-04-04 22:05:37 +0000
@@ -23,7 +23,7 @@
 		virtual ~NormalInelasticityPhys();
 		void SetBreakingState ();
 	YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormalInelasticityPhys,FrictPhys,
-				 "Physics (of interaction) for using Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity",
+				 "Physics (of interaction) for using :yref:`Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity`",
 				 ((Real,unMax,0.0,"the maximum value of penetration depth of the history of this interaction"))
 				 ((Real,previousun,0.0,"the value of this un at the last time step"))
 				 ((Real,previousFn,0.0,"the value of the normal force at the last time step"))

=== modified file 'pkg/dem/Engine/GlobalEngine/CohesiveFrictionalPM.hpp'
--- pkg/dem/Engine/GlobalEngine/CohesiveFrictionalPM.hpp	2010-04-01 06:17:19 +0000
+++ pkg/dem/Engine/GlobalEngine/CohesiveFrictionalPM.hpp	2010-04-04 22:05:37 +0000
@@ -106,7 +106,7 @@
 		FUNCTOR2D(ScGeom,CFpmPhys);
 
 	YADE_CLASS_BASE_DOC_ATTRS(Law2_ScGeom_CFpmPhys_CohesiveFrictionalPM,LawFunctor,"Constitutive law for the CFpm model.",
-		  ((bool,preventGranularRatcheting,false,"If true rotations are computed such as granular ratcheting is prevented. See F. ALONSO-MARROQUIN, R. GARCIA-ROJO, H.J. HERRMANN, Micro-mechanical investigation of granular ratcheting, in Cyclic Behaviour of Soils and Liquefaction Phenomena, ed. T. Triantafyllidis (Balklema, London, 2004), p. 3-10 - and a lot more papers from the same authors)."))
+		  ((bool,preventGranularRatcheting,false,"If true rotations are computed such as granular ratcheting is prevented. See article [Alonso2004]_, pg. 3-10 -- and a lot more papers from the same authors)."))
 	);
 	DECLARE_LOGGER;	
 };

=== modified file 'pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp'
--- pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp	2010-04-01 06:17:19 +0000
+++ pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp	2010-04-04 22:05:37 +0000
@@ -93,7 +93,7 @@
 		void action();
 		virtual void postProcessAttributes(bool deserializing);
 		
-	YADE_CLASS_BASE_DOC_ATTRS(Law2_ScGeom_CapillaryPhys_Capillarity,GlobalEngine,"Rk: this engine is deprecated -> needs some work to be conform with the new formalism!\n\n This law allows to take into account capillary forces/effects between spheres coming from the presence of interparticular liquid bridges (menisci).\n\n refs:\n\n 1- infrench, (lot of documentation) L. Scholtes, PhD thesis -> http://tel.archives-ouvertes.fr/tel-00363961/en/\n\n - 2 in english (less documentation) L. Scholtes et al. Micromechanics of granular materials with capillary effects. International Journal of Engineering Science 2009,(47)1, 64-75.\n\n The law needs ascii files M(r=i) with i=R1/R2 to work (see https://yade-dem.org/index.php/CapillaryTriaxialTest). These ASCII files contain a set of results from the resolution of the Laplace-Young equation for different configurations of the interacting geometry.\n\n The control parameter is the capillary pressure (or suction) Uc = ugas - Uliquid. Liquid bridges properties (volume V, extent over interacting grains delta1 and delta2) are computed as a result of the defined capillary pressure and of the interacting geometry (spheres radii and interparticular distance).",
+	YADE_CLASS_BASE_DOC_ATTRS(Law2_ScGeom_CapillaryPhys_Capillarity,GlobalEngine,".. note::\n\t This engine is deprecated → needs some work to be conform with the new formalism.\n\n This law allows to take into account capillary forces/effects between spheres coming from the presence of interparticular liquid bridges (menisci).\n\n refs:\n\n#. in french [Scholtes2009]_ (lot of documentation) \n#. in english [Scholtes2009b]_ (less documentation), pg. 64-75.\n\nThe law needs ascii files M(r=i) with i=R1/R2 to work (see https://yade-dem.org/index.php/CapillaryTriaxialTest). These ASCII files contain a set of results from the resolution of the Laplace-Young equation for different configurations of the interacting geometry.\n\nThe control parameter is the capillary pressure (or suction) Uc = ugas - Uliquid. Liquid bridges properties (volume V, extent over interacting grains delta1 and delta2) are computed as a result of the defined capillary pressure and of the interacting geometry (spheres radii and interparticular distance).",
 				  ((int,sdecGroupMask,1,"? the interaction only considers particles with same mask ?"))
 				  ((Real,CapillaryPressure,0.,"Value of the capillary pressure Uc defines as Uc=Ugas-Uliquid"))
 				  ((bool,fusionDetection,false,"If true potential menisci overlaps are checked"))

=== modified file 'pkg/dem/Engine/GlobalEngine/Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity.hpp'
--- pkg/dem/Engine/GlobalEngine/Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity.hpp	2010-03-23 14:19:56 +0000
+++ pkg/dem/Engine/GlobalEngine/Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity.hpp	2010-04-04 22:05:37 +0000
@@ -26,7 +26,7 @@
 // 	YADE_CLASS_BASE_DOC_ATTRS(NormalInelasticityLaw,
 // >>>>>>> MERGE-SOURCE
 				  GlobalEngine,
-				  "Contact law including cohesion, moment transfer and inelastic compression behaviour\n\n This contact Law is inspired by :yref:`CohesiveFrictionalContactLaw` (inspired itselve directly from the work of Plassiard & Belheine, see the corresponding articles in (Annual Report 2006) in http://geo.hmg.inpg.fr/frederic/Discrete_Element_Group_FVD.html for example).\n\n It allows so to set moments, cohesion, tension limit and (that's the difference) inelastic unloadings in compression between bodies. All that concerned brokenBodies (this flag and the erosionactivated one) and the useless 'iter' has been suppressed.\n\n The Relationsships corresponding are Ip2_2xCohFrictMat_NormalInelasticityPhys, where the rigidities, the friction angles (with their tan()), and the orientations of the interactions are calculated. No more cohesion and tension limits are computed for all the interactions.\n\n To use it you should also use :\n- :yref:`CohesiveFrictionalMat` for bodies, with *isCohesive* = 1 (A verifier ce dernier point)\n- :yref:`Ip2_2xCohFrictMat_NormalInelasticityPhys` (=> which involves interactions of :yref:`NormalInelasticityPhys` type)",
+				  "Contact law including cohesion, moment transfer and inelastic compression behaviour\n\n This contact Law is inspired by :yref:`CohesiveFrictionalContactLaw` (inspired itself directly by the work of Plassiard & Belheine, see corresponding articles in [DeghmReport2006]_ for example).\n\n It allows so to set moments, cohesion, tension limit and (that's the difference) inelastic unloadings in compression between bodies. All that concerned brokenBodies (this flag and the erosionactivated one) and the useless 'iter' has been suppressed.\n\n The Relationsships corresponding are Ip2_2xCohFrictMat_NormalInelasticityPhys, where the rigidities, the friction angles (with their tan()), and the orientations of the interactions are calculated. No more cohesion and tension limits are computed for all the interactions.\n\n To use it you should also use :\n- :yref:`CohesiveFrictionalMat` for bodies, with *isCohesive* = 1 (A verifier ce dernier point)\n- :yref:`Ip2_2xCohFrictMat_NormalInelasticityPhys` (=> which involves interactions of :yref:`NormalInelasticityPhys` type)",
 				  ((int,sdecGroupMask,1,"?"))
 				  ((Real,coeff_dech,1.0,"=kn(unload) / kn(load)"))
 				  ((bool,momentRotationLaw,true,"boolean, true=> computation of a torque (against relative rotation) exchanged between particles"))

=== modified file 'pkg/dem/Engine/GlobalEngine/NewtonIntegrator.hpp'
--- pkg/dem/Engine/GlobalEngine/NewtonIntegrator.hpp	2010-03-20 12:40:44 +0000
+++ pkg/dem/Engine/GlobalEngine/NewtonIntegrator.hpp	2010-04-04 22:05:37 +0000
@@ -67,9 +67,9 @@
 		shared_ptr<VelocityBins> velocityBins;
 		virtual void action();		
 	YADE_CLASS_BASE_DOC_ATTRS_CTOR(NewtonIntegrator,GlobalEngine,"Engine integrating newtonian motion equations.",
-		((Real,damping,0.2,"damping coefficient for Cundall's non viscous damping [-]"))
+		((Real,damping,0.2,"damping coefficient for Cundall's non viscous damping (see [Chareyre2005]_) [-]"))
 		((Real,maxVelocitySq,NaN,"store square of max. velocity, for informative purposes; computed again at every step. |yupdate|"))
-		((bool,exactAsphericalRot,false,"Enable of the exact aspherical body rotation integrator."))
+		((bool,exactAsphericalRot,false,"Enable of the exact aspherical body rotation integrator, using formulation from [Allen1989]_, pg. 89."))
 		((int,homotheticCellResize,((void)"disabled",0),"Enable artificially moving all bodies with the periodic cell, such that its resizes are isotropic. 0: disabled, 1: position update, 2: velocity update."))
 		((vector<shared_ptr<BodyCallback> >,callbacks,,"List (std::vector in c++) of :yref:`BodyCallbacks<BodyCallback>` which will be called for each body as it is being processed."))
 		,

=== modified file 'pkg/dem/meta/ConcretePM.hpp'
--- pkg/dem/meta/ConcretePM.hpp	2010-04-03 16:40:33 +0000
+++ pkg/dem/meta/ConcretePM.hpp	2010-04-04 22:05:37 +0000
@@ -192,7 +192,7 @@
 		((Real,epsSoft,((void)"approximates confinement -20MPa precisely, -100MPa a little over, -200 and -400 are OK (secant)",-3e-3),"Strain at which softening in compression starts (non-negative to deactivate)"))
 		((Real,relKnSoft,.3,"Relative rigidity of the softening branch in compression (0=perfect elastic-plastic, <0 softening, >0 hardening)")),
 		/*ctor*/,
-		.def("funcG",&Law2_Dem3DofGeom_CpmPhys_Cpm::funcG,(py::arg("kappaD"),py::arg("epsCrackOnset"),py::arg("epsFracture"),py::arg("neverDamage")=false),"Damage evolution law, evaluating the :math:`\\omega` parameter. :math:`\\kappa_D` is historically maximum strain, *epsCrackOnset* (:math:`\\varepsilon_0`) = :yref:`CpmMat.epsCrackOnset`, *epsFracture* = :yref:`CpmMat.epsFracture`; if *neverDamage* is ``True``, the value returned will always be 0 (no damage).")
+		.def("funcG",&Law2_Dem3DofGeom_CpmPhys_Cpm::funcG,(py::arg("kappaD"),py::arg("epsCrackOnset"),py::arg("epsFracture"),py::arg("neverDamage")=false),"Damage evolution law, evaluating the $\\omega$ parameter. $\\kappa_D$ is historically maximum strain, *epsCrackOnset* ($\\varepsilon_0$) = :yref:`CpmMat.epsCrackOnset`, *epsFracture* = :yref:`CpmMat.epsFracture`; if *neverDamage* is ``True``, the value returned will always be 0 (no damage).")
 		.def("yieldSigmaTMagnitude",&Law2_Dem3DofGeom_CpmPhys_Cpm::yieldSigmaTMagnitude,(py::arg("sigmaN"),py::arg("omega"),py::arg("undamagedCohesion"),py::arg("tanFrictionAngle")),"Return radius of yield surface for given material and state parameters; uses attributes of the current instance (*yieldSurfType* etc), change them before calling if you need that.")
 	);
 	DECLARE_LOGGER;

=== modified file 'py/utils.py'
--- py/utils.py	2010-03-28 21:22:25 +0000
+++ py/utils.py	2010-04-04 22:05:37 +0000
@@ -59,7 +59,7 @@
 
 
 def SpherePWaveTimeStep(radius,density,young):
-	r"""Compute P-wave critical timestep for a single (presumably representative) sphere, using formula for P-Wave propagation speed :math:`\Delta t_{c}=\frac{r}{\sqrt{E/\rho}}`.
+	r"""Compute P-wave critical timestep for a single (presumably representative) sphere, using formula for P-Wave propagation speed $\Delta t_{c}=\frac{r}{\sqrt{E/\rho}}$.
 	If you want to compute minimum critical timestep for all spheres in the simulation, use :yref:`yade.utils.PWaveTimeStep` instead.
 	
 	>>> SpherePWaveTimeStep(1e-3,2400,30e9)