1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#ifdef DEPREC_CODE
/*************************************************************************
* Copyright (C) 2006 by Luc Scholtes *
* luc.scholtes@hmg.inpg.fr *
* *
* This program is free software; it is licensed under the terms of the *
* GNU General Public License v2 or later. See file LICENSE for details. *
*************************************************************************/
#ifndef SAMPLE_CAPILLARY_PRESSURE_ENGINE_HPP
#define SAMPLE_CAPILLARY_PRESSURE_ENGINE_HPP
#include <lib/base/Math.hpp>
#include <core/PartialEngine.hpp>
#include <pkg/dem/TriaxialStressController.hpp>
#include <string>
namespace yade { // Cannot have #include directive inside.
/*! \brief Isotropic compression + suction variation test */
class Law2_ScGeom_CapillaryPhys_Capillarity;
class SampleCapillaryPressureEngine : public TriaxialStressController {
public:
//! is isotropicInternalCompactionFinished?
bool Phase1;
std::string Phase1End;
//! is this the beginning of the simulation, after reading the scene?
bool firstRun;
shared_ptr<Law2_ScGeom_CapillaryPhys_Capillarity> capillaryCohesiveLaw;
//Law2_ScGeom_CapillaryPhys_Capillarity* capillaryCohesiveLaw; // which one is right?
virtual ~SampleCapillaryPressureEngine();
void updateParameters();
virtual void action();
// clang-format off
YADE_CLASS_BASE_DOC_ATTRS_CTOR_PY(SampleCapillaryPressureEngine,TriaxialStressController,"It produces the isotropic compaction of an assembly and allows one to controlled the capillary pressure inside (uses Law2_ScGeom_CapillaryPhys_Capillarity).",
((Real,Pressure,0,,"Value of the capillary pressure Uc=Ugas-Uliquid (see Law2_ScGeom_CapillaryPhys_Capillarity). [Pa]"))
((bool,pressureVariationActivated,1,,"Is the capillary pressure varying?"))
((bool,fusionDetection,1,,"Is the detection of menisci overlapping activated?"))
((bool,binaryFusion,1,,"If yes, capillary force are set to 0 when, at least, 1 overlap is detected for a meniscus. If no, capillary force is divided by the number of overlaps."))
((Real,PressureVariation,0,,"Variation of the capillary pressure (each iteration). [Pa]"))
((Real,UnbalancedForce,1,,"mean resultant forces divided by mean contact force"))
((Real,StabilityCriterion,0.01,,"tolerance in terms of :yref:`TriaxialCompressionEngine::UnbalancedForce` to consider the packing as stable"))
((Real,SigmaPrecision,0.001,,"tolerance in terms of mean stress to consider the packing as stable")),
Phase1=false;
Phase1End = "Compacted";
firstRun=true;
,)
// clang-format on
DECLARE_LOGGER;
};
REGISTER_SERIALIZABLE(SampleCapillaryPressureEngine);
} // namespace yade
#endif // SAMPLECAPILLARYPRESSUREENGINE_HPP
#endif //DEPREC CODE
|