Author: eudoxos
Date: 2009-05-05 22:44:59 +0200 (Tue, 05 May 2009)
New Revision: 1768

Modified:
   trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp
   trunk/pkg/dem/Engine/DeusExMachina/TriaxialStressController.cpp
Log:
1. Fixing bug in TriaxialCompressionEngine (introduced by luc apparently).

Is there no-one using Triaxial? How is it possible that I have to track and fix
new bugs almost every time I want to use it, once in a few monts??



Modified: trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp
===================================================================
--- trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp    
2009-05-05 06:53:11 UTC (rev 1767)
+++ trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp    
2009-05-05 20:44:59 UTC (rev 1768)
@@ -254,7 +254,7 @@
        if ( Omega::instance().getCurrentIteration() % testEquilibriumInterval 
== 0 )
        {
                updateParameters ( ncb );
-               LOG_INFO("UnbalancedForce="<< UnbalancedForce);
+               LOG_INFO("UnbalancedForce="<< UnbalancedForce<<", rel stress 
"<< abs ( ( meanStress-sigma_iso ) /sigma_iso ));
        }
        
        if ( currentState==STATE_LIMBO && autoStopSimulation )

Modified: trunk/pkg/dem/Engine/DeusExMachina/TriaxialStressController.cpp
===================================================================
--- trunk/pkg/dem/Engine/DeusExMachina/TriaxialStressController.cpp     
2009-05-05 06:53:11 UTC (rev 1767)
+++ trunk/pkg/dem/Engine/DeusExMachina/TriaxialStressController.cpp     
2009-05-05 20:44:59 UTC (rev 1768)
@@ -248,20 +248,17 @@
                        }
                }
                
-               // if the TriaxialCompressionEngine is used, sigma_iso is 
attributed to sigma1, sigma2 and sigma3
-               if (isTriaxialCompression){
-                       sigma1 = sigma_iso;
-                       sigma2 = sigma_iso;
-                       sigma3 = sigma_iso;
-
-                       max_vel1 = max_vel;
-                       max_vel2 = max_vel;
-                       max_vel3 = max_vel;
-               }
-               
                firstRun = false;
-       
        }
+
+       // NOT JUST at the first run, since sigma_iso may be changed
+       // if the TriaxialCompressionEngine is used, sigma_iso is attributed to 
sigma1, sigma2 and sigma3
+       if (isTriaxialCompression){
+               sigma1=sigma2=sigma3=sigma_iso;
+               max_vel1=max_vel2=max_vel3=max_vel;
+       }
+
+
        porosity = ( boxVolume - spheresVolume ) /boxVolume;
 
        position_top = p_top->se3.position.Y();
@@ -284,24 +281,15 @@
                computeStressStrain(ncb);
 
        if (!internalCompaction) {
-               //Vector3r wallForce (0, sigma_iso*width*depth, 0);
                Vector3r wallForce (0, sigma2*width*depth, 0);
-               //if (wall_bottom_activated) controlExternalStress(wall_bottom, 
ncb, -wallForce, p_bottom, max_vel);
-               //if (wall_top_activated) controlExternalStress(wall_top, ncb, 
wallForce, p_top, max_vel);
                if (wall_bottom_activated) controlExternalStress(wall_bottom, 
ncb, -wallForce, p_bottom, max_vel2);
                if (wall_top_activated) controlExternalStress(wall_top, ncb, 
wallForce, p_top, max_vel2);
                
-               //wallForce = Vector3r(sigma_iso*height*depth, 0, 0);
                wallForce = Vector3r(sigma1*height*depth, 0, 0);
-               //if (wall_left_activated) controlExternalStress(wall_left, 
ncb, -wallForce, p_left, max_vel*width/height);
-               //if (wall_right_activated) controlExternalStress(wall_right, 
ncb, wallForce, p_right, max_vel*width/height);
                if (wall_left_activated) controlExternalStress(wall_left, ncb, 
-wallForce, p_left, max_vel1*width/height);
                if (wall_right_activated) controlExternalStress(wall_right, 
ncb, wallForce, p_right, max_vel1*width/height);
                
-               //wallForce = Vector3r(0, 0, sigma_iso*height*width);
                wallForce = Vector3r(0, 0, sigma3*height*width);
-               //if (wall_back_activated) controlExternalStress(wall_back, 
ncb, -wallForce, p_back, max_vel*depth/height);
-               //if (wall_front_activated) controlExternalStress(wall_front, 
ncb, wallForce, p_front, max_vel*depth/height);
                if (wall_back_activated) controlExternalStress(wall_back, ncb, 
-wallForce, p_back, max_vel3*depth/height);
                if (wall_front_activated) controlExternalStress(wall_front, 
ncb, wallForce, p_front, max_vel3*depth/height);
        }


_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp
_______________________________________________
yade-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/yade-dev

Reply via email to