yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #03901
[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));