yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #01215
Re: Triaxial Test(PFC3D vs YADE)
I'm posting here the answer I typed few days ago, which for some reason
has been sent to the private email of Mohammad when I clicked "reply to" :
Dear Mohammad,
> (sorry, my earlier post was incomplete.extremely sorry for
> inconvinience.)
>
> Dear Bruno,
> At first thanks a lot for your explanation.
>
> <In TriaxialStressController.cpp, each wall is controlled independently
> to reach a target stress. Nothing prevent you from setting different
> target values for different directions (it has to be coded however,
> because there is one unique "lateralStress" in 2 directions for the
> moment, you need to split this variable into 3 if you want different
> target stresses in different directions).
>
> Bruno>
>
> >As per your recommendation I have found following change..Is there
> any more change than following or any recommendation
> >Do you suggest for new preprocessor named MCSTriaxialTest.cpp and
> MCSTriaxialTest.hpp (Mean Constant Stress Path),because, I found good
> number of change
>
>
First, thank you for asking. I would give as a general rule :
1- If you are afraid of breaking something, or if you make big changes,
better create a new processor.
2- If you are confident enough, try modifying the TriaxialTest so that
the average user (in fact me ;)) will not see any difference.
Something like :
if (newFeatureActivated)
{
do something new;
}
else
{
do the same as before;
}
Here, given the amount of changes needed, I'd suggest solution 1
disregarding your potential confidence.
I'm not even sure you need the TriaxialCompressionEngine, in your case
TriaxialStressController could be enough (I'm sorry I have no time to
think to all implementation details, you'll have to find it).
I can't tell precisely if everything is correct in what you sent, but I
think you get the general idea.
Minor remark :
"sigma1VerticalConfinement" is redundant, why not just
sigma11/sigma22/sigma33?
More important :
You missed an important part as you apparently dealt mostly with the
interface and registration of the new variables, but you don't really
use them somewhere.
In TriaxialStressController, you have this (l.224) :
Vector3r wallForce (0, sigma_iso*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);
wallForce = Vector3r(sigma_iso*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);
wallForce = Vector3r(0, 0, sigma_iso*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);
As you see, the prescribed force on each wall is always computed as
sigma_iso*area. This is where your new stress parameters should be taken
into account. If i'm correct :
Vector3r wallForce (0, sigma22*width*depth, 0);
if (wall_bottom_activated) controlExternalStress(wall_bottom, ncb,
-wallForce, p_bottom, max_vel);
... etc
wallForce = (0, sigma11*height*depth, 0);
...
wallForce = Vector3r(0, 0, sigma33*height*width);
You can do this modification in the existing class, if you make sure
that by default sigma11=sigma22=sigma33=sigma_iso.
Then, you use it in a new preprocessor using non-default sigma values.
Also, I guess you will want an evolution of imposed sigma11 and/or
sigma22 and/or sigma33 during the simulation.
So, you will need to define this evolution somewhere. I'm not sure now
if you need to do that in a new class that would replace
TriaxialCompressionEngine in you preprocessor, or if you can just modify
the current engine a little bit.
I can't help a lot here because I still don't understand what will be
your loading path exactly.
Keep posting your suggestions here during the design process, I'll do my
best to advize.
I hope it is clear.
Bruno
_______________
Chareyre Bruno
Maitre de conference
Grenoble INP
Laboratoire 3SR - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 43
________________
_______________________________________________
Yade-users mailing list
Yade-users@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-users
Follow ups