by **arnom** on Sun Feb 13, 2011 5:51 am

Hi Brandon,

Do I understand you correctly. Even with 2.2.1 you could not run your own cases except if you compiled with -O0? (If this is true I recommend you also try -O1 and -O2 to obtain better efficiency.)

Ad 1.) I guess your sphere is initially 2m wide. That means that xmax, zmax are set to 2 respectively. The problem is that SPHysics needs to know how large the domain of computation is going to be. In case of linear movement this is not predicted (consider a gate that moves upwards. It is not of interest what happens to it once it goes over zmax.) Now of course things are different in your case and I did not consider something like this. I will send you a file that should allow you to enter your own limits. Others that are interested see code at the end of this post. Note that I have not tested it and I kindly ask you to do that for me as my time is a bit limited at the moment.

Ad 2.) Yes it can happen that movements are too fast. What I can recommend is either set the speed of sound higher or use an accelerating movement (use the movement file option for this for example).

Hope I could sort out these issues now. I'm sorry that you have so many problems, but a program of that allows such a wide array of applications is difficult to test for every possible flaw so thanks for your patience.

Best regards,

Arno

________________

In external_file.f add the following at line 525:

write(*,*) ' Enter own limits? (0=No,1=Yes)'

read(*,*) i

write(*,*) i

if(i.eq.1)then

write(*,*) ' Enter xmin,xmax'

read(*,*) mv_xmin, mv_xmax

write(*,*) ' Enter ymin,ymax'

read(*,*) mv_ymin, mv_ymax

write(*,*) ' Enter zmin,zmax'

read(*,*) mv_zmin, mv_zmax

if(mv_xmin.gt.mv_xmax)then

t = mv_xmin

mv_xmin = mv_xmax

mv_xmax = t

endif

if(mv_ymin.gt.mv_ymax)then

t = mv_ymin

mv_ymin = mv_ymax

mv_ymax = t

endif

if(mv_zmin.gt.mv_zmax)then

t = mv_zmin

mv_zmin = mv_zmax

mv_zmax = t

endif

write(*,*) ' Final limits '

write(*,*) 'x:',mv_xmin,mv_xmax

write(*,*) 'y:',mv_ymin,mv_ymax

write(*,*) 'z:',mv_zmin,mv_zmax

endif