Author: chareyre
Date: 2009-07-02 17:26:02 +0200 (Thu, 02 Jul 2009)
New Revision: 1834

Added:
   trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.cpp
   trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.hpp
Modified:
   trunk/pkg/dem/SConscript
Log:
Base class for the solid-fluid coupling (E. Catalano PhD).
 


Added: trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.cpp
===================================================================
--- trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.cpp   2009-07-02 13:33:47 UTC 
(rev 1833)
+++ trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.cpp   2009-07-02 15:26:02 UTC 
(rev 1834)
@@ -0,0 +1,89 @@
+/*************************************************************************
+*  Copyright (C) 2009 by Bruno Chareyre                                  *
+*  [email protected]                                            *
+*                                                                        *
+*  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. *
+*************************************************************************/
+
+#include "FlowEngine.hpp"
+#include <yade/pkg-common/ParticleParameters.hpp>
+#include<yade/core/MetaBody.hpp>
+#include<yade/core/MetaBody.hpp>
+#include<yade/pkg-common/RigidBodyParameters.hpp>
+#include<yade/lib-base/yadeWm3Extra.hpp>
+
+
+FlowEngine::FlowEngine() : gravity(Vector3r::ZERO), isActivated(false)
+{
+dummyParameter = false;
+}
+
+
+FlowEngine::~FlowEngine()
+{
+}
+
+
+void FlowEngine::registerAttributes()
+{
+//     REGISTER_ATTRIBUTE(gravity);
+       REGISTER_ATTRIBUTE(isActivated);
+       REGISTER_ATTRIBUTE(dummyParameter);
+}
+
+
+void FlowEngine::applyCondition(MetaBody* ncb)
+{
+
+    if (isActivated)
+    {
+        shared_ptr<BodyContainer>& bodies = ncb->bodies;
+
+
+
+       FOREACH(const shared_ptr<Body>& b, *ncb->bodies){
+               // clump members are non-dynamic; they skip the rest of loop 
once their forces are properly taken into account, however
+               //if (!b->isDynamic && !b->isClumpMember()) continue;
+               
+               RigidBodyParameters* rb = 
YADE_CAST<RigidBodyParameters*>(b->physicalParameters.get());
+               ///Access data (examples)
+               const body_id_t& id=b->getId();
+               Real vx = rb->velocity[0];
+               Real rx = rb->angularVelocity[0];
+               Real x = rb->se3.position[0];
+       }
+
+       ///Compute flow and and forces here
+
+       
+       
+       
+       
+       
+               
+       
+       
+       ///End Compute flow and and forces
+       
+       
+       
+       
+       int Nspheres=100;
+       for (long i=1; i<Nspheres; ++i)
+       {
+
+               //file >> id >> fx >> fy >> fz >> mx >> my >> mz;
+
+               //Vector3r f (fx,fy,fz);
+               //Vector3r t (mx,my,mz);
+                
+               //b->bex.addForce(id,f);
+               //ncb->bex.addTorque(id,t);
+
+       }
+       
+    }
+}
+
+YADE_PLUGIN();

Added: trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.hpp
===================================================================
--- trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.hpp   2009-07-02 13:33:47 UTC 
(rev 1833)
+++ trunk/pkg/dem/Engine/DeusExMachina/FlowEngine.hpp   2009-07-02 15:26:02 UTC 
(rev 1834)
@@ -0,0 +1,32 @@
+/*************************************************************************
+*  Copyright (C) 2009 by Bruno Chareyre                                  *
+*  [email protected]                                            *
+*                                                                        *
+*  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. *
+*************************************************************************/
+
+#pragma once
+
+#include<yade/core/DeusExMachina.hpp>
+
+class FlowEngine : public DeusExMachina 
+{
+       public :
+               Vector3r gravity;
+               bool isActivated;
+               bool dummyParameter;
+               FlowEngine();
+               virtual ~FlowEngine();
+       
+               virtual void applyCondition(MetaBody*);
+       
+       protected :
+               virtual void registerAttributes();
+       REGISTER_CLASS_NAME(FlowEngine);
+       REGISTER_BASE_CLASS_NAME(DeusExMachina);
+};
+
+REGISTER_SERIALIZABLE(FlowEngine);
+
+

Modified: trunk/pkg/dem/SConscript
===================================================================
--- trunk/pkg/dem/SConscript    2009-07-02 13:33:47 UTC (rev 1833)
+++ trunk/pkg/dem/SConscript    2009-07-02 15:26:02 UTC (rev 1834)
@@ -846,18 +846,18 @@
                ['DataClass/InteractionPhysics/CapillaryParameters.cpp'],
                LIBS=env['LIBS']+['ElasticContactInteraction']),
 
-env.SharedLibrary('InteractingSphere2InteractingSphere4SpheresContactGeometryWater',
-               
['Engine/EngineUnit/InteractingSphere2InteractingSphere4SpheresContactGeometryWater.cpp'],
-               LIBS=env['LIBS']+['SpheresContactGeometry',
-                       'InteractionGeometryMetaEngine',
-                       'InteractingSphere' ]),
+#env.SharedLibrary('InteractingSphere2InteractingSphere4SpheresContactGeometryWater',
+               
#['Engine/EngineUnit/InteractingSphere2InteractingSphere4SpheresContactGeometryWater.cpp'],
+               #LIBS=env['LIBS']+['SpheresContactGeometry',
+                       #'InteractionGeometryMetaEngine',
+                       #'InteractingSphere' ]),
 
-env.SharedLibrary('InteractingBox2InteractingSphere4SpheresContactGeometryWater',
-               
['Engine/EngineUnit/InteractingBox2InteractingSphere4SpheresContactGeometryWater.cpp'],
-               LIBS=env['LIBS']+['SpheresContactGeometry',
-                       'InteractionGeometryMetaEngine',
-                       'InteractingSphere',
-                       'InteractingBox' ]),
+#env.SharedLibrary('InteractingBox2InteractingSphere4SpheresContactGeometryWater',
+               
#['Engine/EngineUnit/InteractingBox2InteractingSphere4SpheresContactGeometryWater.cpp'],
+               #LIBS=env['LIBS']+['SpheresContactGeometry',
+                       #'InteractionGeometryMetaEngine',
+                       #'InteractingSphere',
+                       #'InteractingBox' ]),
 
 #env.SharedLibrary('MacroMicroElasticRelationshipsWater',
                #['Engine/EngineUnit/MacroMicroElasticRelationshipsWater.cpp'],
@@ -883,6 +883,15 @@
                        '$PREFIX/include',
                        'DataClass/PhysicalParameters']),
                        
+#env.SharedLibrary('FlowEngine',
+               #['Engine/DeusExMachina/FlowEngine.cpp'],
+               #LIBS=env['LIBS']+['yade-base',   'ParticleParameters', 
'CohesiveFrictionalBodyParameters', 'TriaxialCompressionEngine', 
'GravityEngines'],
+               #CPPPATH=env['CPPPATH']+['Engine/DeusExMachina',
+                       #'DataClass/PhysicalAction',
+                       #'RigidBodyParameters',
+                       #'$PREFIX/include',
+                       #'DataClass/PhysicalParameters']),
+                       
 env.SharedLibrary('SampleCapillaryPressureEngine',
                ['Engine/DeusExMachina/SampleCapillaryPressureEngine.cpp'],
                LIBS=env['LIBS']+['yade-factory',


_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to