← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-dev/yade/trunk] Rev 2134: - Fixed retriangulation problems

 

------------------------------------------------------------
revno: 2134
committer: Emanuele Catalano <ecatalano@r2balme>
branch nick: trunk
timestamp: Thu 2010-04-08 19:49:39 +0200
message:
  - Fixed retriangulation problems
modified:
  lib/triangulation/FlowBoundingSphere.cpp
  pkg/dem/Engine/PartialEngine/FlowEngine.cpp
  pkg/dem/Engine/PartialEngine/FlowEngine.hpp


--
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
=== modified file 'lib/triangulation/FlowBoundingSphere.cpp'
--- lib/triangulation/FlowBoundingSphere.cpp	2010-04-07 15:03:09 +0000
+++ lib/triangulation/FlowBoundingSphere.cpp	2010-04-08 17:49:39 +0000
@@ -283,12 +283,13 @@
         RTriangulation& Tri = Tes.Triangulation();
         Finite_cells_iterator cell_end = NewTri.finite_cells_end();
         /*CALCULATION OF VORONOI CENTRES*/
-        if ( !NewTes.Computed() ) NewTes.Compute();
+//        if ( !NewTes.Computed() ) NewTes.Compute();
         for (Finite_cells_iterator new_cell = NewTri.finite_cells_begin(); new_cell != cell_end; new_cell++) {
                 old_cell = Tri.locate((Point) new_cell->info());
                 new_cell->info().p() = old_cell->info().p();
                 //    new_cell->info().dv() = old_cell->info().dv();
         }
+	Tes.Clear();
 //         return NewTes;
 }
 

=== modified file 'pkg/dem/Engine/PartialEngine/FlowEngine.cpp'
--- pkg/dem/Engine/PartialEngine/FlowEngine.cpp	2010-04-07 15:03:09 +0000
+++ pkg/dem/Engine/PartialEngine/FlowEngine.cpp	2010-04-08 17:49:39 +0000
@@ -107,6 +107,7 @@
 				MaxPressure = flow->PermeameterCurve(flow->T[flow->currentTes].Triangulation(), g, time, intervals);
 				
 				if ( Omega::instance().getCurrentIteration() % PermuteInterval == 0 )
+// 				if (Retriangulation)
 				{ Update_Triangulation = true; }
 				
 				timingDeltas->checkpoint("Storing Max Pressure");
@@ -131,8 +132,6 @@
 	triaxialCompressionEngine->wall_back_activated=0;
 	triaxialCompressionEngine->wall_top_activated=1;
 	triaxialCompressionEngine->wall_bottom_activated=1;
-
-	triaxialCompressionEngine->sigma_iso=(triaxialCompressionEngine->sigma_iso)*loadFactor;
 }
 
 void FlowEngine::Build_Triangulation (double P_zero )
@@ -144,13 +143,11 @@
 		flow->SLIP_ON_LATERALS=slip_boundary;
 		flow->key = triaxialCompressionEngine->Key;
 		flow->k_factor = permeability_factor;
+		triaxialCompressionEngine->sigma_iso=(triaxialCompressionEngine->sigma_iso)*loadFactor;
 	}
 	else
 	{
-		cout << "---------UPDATE PERMEABILITY VALUE--------------" << endl;
-		if (compute_K) {flow->TOLERANCE=1e-09; K = flow->Sample_Permeability ( flow->T[flow->currentTes].Triangulation(), flow->x_min, flow->x_max, flow->y_min, flow->y_max, flow->z_min, flow->z_max, flow->key );}
 		flow->currentTes=!flow->currentTes;
-		flow->TOLERANCE=Tolerance;
 		cout << "--------RETRIANGULATION-----------" << endl;
 	}
 // 	currentTes=flow->currentTes;
@@ -173,18 +170,21 @@
 		CGT::Finite_cells_iterator cell_end = flow->T[flow->currentTes].Triangulation().finite_cells_end();
 		for ( CGT::Finite_cells_iterator cell = flow->T[flow->currentTes].Triangulation().finite_cells_begin(); cell != cell_end; cell++ ){cell->info().dv() = 0; cell->info().p() = 0;}
 		if (compute_K) {flow->TOLERANCE=1e-09; K = flow->Sample_Permeability ( flow->T[flow->currentTes].Triangulation(), flow->x_min, flow->x_max, flow->y_min, flow->y_max, flow->z_min, flow->z_max, flow->key );}
-		Oedometer_Boundary_Conditions();
 		flow->Initialize_pressures( P_zero );
 		flow->TOLERANCE=Tolerance;
 		flow->RELAX=Relax;
 	}
 	else 
 	{
-		Oedometer_Boundary_Conditions();
+		cout << "---------UPDATE PERMEABILITY VALUE--------------" << endl;
+		if (compute_K) {flow->TOLERANCE=1e-09; K = flow->Sample_Permeability ( flow->T[flow->currentTes].Triangulation(), flow->x_min, flow->x_max, flow->y_min, flow->y_max, flow->z_min, flow->z_max, flow->key );}
+		flow->TOLERANCE=Tolerance;
 		flow->Interpolate ( flow->T[!flow->currentTes], flow->T[flow->currentTes] );
 		Update_Triangulation=!Update_Triangulation;
+		Retriangulation=false;
 	}
 
+	Oedometer_Boundary_Conditions();
 	Initialize_volumes ( );
 	flow->DisplayStatistics ();
 }

=== modified file 'pkg/dem/Engine/PartialEngine/FlowEngine.hpp'
--- pkg/dem/Engine/PartialEngine/FlowEngine.hpp	2010-04-07 15:03:09 +0000
+++ pkg/dem/Engine/PartialEngine/FlowEngine.hpp	2010-04-08 17:49:39 +0000
@@ -58,6 +58,7 @@
 					((double, MaxPressure, 0, "Maximal value of water pressure within the sample"))
 					((double, currentStress, 0, "Current value of axial stress"))
 					((double, currentStrain, 0, "Current value of axial strain"))
+					((bool, Retriangulation, 0, "Enable/Disable sample retriangulation"))
 					((int, intervals, 30, "Number of layers for pressure measurements"))
 					((bool,tess_based_force,true,"true=force computation based on tessalation, false=force computation based on triangulation")),
 					timingDeltas=shared_ptr<TimingDeltas>(new TimingDeltas));