error in ManageCollision

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

error in ManageCollision

mumić
Hello there!

I was trying to somehow replicate this video


But, after defining my domain via granoo-cooker, with the following SupportShape with 3000 elements:
<PlugIn Id="_NewSupportShape" Type="Box" DimX="0.1" DimY="2" DimZ="2" ID="Boundary"/>
I tried to setup a simulation (as for first case, without any bond-breaking effect), but as soon as I define it, I get an error on ManageCollision with the following text:

################################################################################################

[PROCESSING] Starting the processing time loop
[PROCESSING it=0][PlugIn _ManageCollision...]
[ERROR]
####################################################
# An error was encountered ! The program must stop #
####################################################
You have to fix this problem, you may browse the source files to get more informations...
line      : 512
in file   : /home/tulio/programs/granoo/tags/2.0/Lib/GranOO/libGeom/Vector.hpp
condition : 'k != 0.'
======================
-- Attached message --
======================
can't divide a vector by a null value
bullet.exe: /home/tulio/programs/granoo/tags/2.0/Lib/GranOO/libUtil/Macro.cpp:65: static void GranOO::Util::AssertMsg::RaiseUserAssertion(int, const string&, const string&, const string&): Assertion `0' failed.
Aborted (core dumped)

################################################################################################

I've tried to search the source codes and couldn't find the reason for it. Is there anything I'm doing wrong in this case? I never had any problem with ManageCollision before, but this time it's simply not working.

My complete .inp code can be found below:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<GranOO Version="2.0" TotIteration="100000" TimeStep="1e-4" OutDir="glass"> 
	<PreProcessing>
		<PlugIn Id="_ReadDomain" FileName="./TEST/CompactDomain.agdd" />
		<PlugIn Id="_NewFrame" Center="(-0.2,0.,0.)" ID="frame1" />
		<PlugIn Id="_NewTool" Type="Sphere" Radius="0.1" FrameID="frame1" Set="bola"/>
		<PlugIn Id="_ConvertElementPairToBeam" YoungModulus="1e7" RadiusRatio="0.5" />
	</PreProcessing>

	<Processing>
		<PlugIn Id="_Check" />
		<PlugIn Id="_ClearLoad" />
		<PlugIn Id="_ApplyBondLoad" />
		<PlugIn Id="_IntegrateAcceleration" Linear="Yes" Angular="Yes"/>
		<PlugIn Id="_ManageCollision" Between="Body/Body" 
			BroadPhase="Raw" Set1="Global" Set2="bola"
			NarrowPhase="WithShape" CallBack="Standard" RestitutionCoeff="0.8" Stiffness="1e11"/>
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-yMin" />
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-yMax" />
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-zMin" />
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-zMax" />
		<PlugIn Id="_ImposeDisplacement" X="0.00001*it" Y="0." Z="0." Set="bola" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-yMin" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-yMax" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-zMin" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-zMax" />
		<PlugIn Id="_ExportToPVD" Field="All" IterLoop="100" />
	</Processing>
	<PostProcessing>
	</PostProcessing>
</GranOO>

Anyway, thank you!
Reply | Threaded
Open this post in threaded view
|

Re: error in ManageCollision

mumić
Messing on the forum I found André's code for the shown video. Yet, even though my simulation code doesn't work for the proposed, the error is still to be found. I created a new test code but instead of a sphere, I'm using a cylinder and it did work and the collision was effective, yet the problem on the first code persists.
Reply | Threaded
Open this post in threaded view
|

Re: error in ManageCollision

Damien André
Administrator
Hello, could you share with us your *.gdd file ? Thx, Damien.
Reply | Threaded
Open this post in threaded view
|

Re: error in ManageCollision

mumić
Hey there!

Sure, the file is here.
Reply | Threaded
Open this post in threaded view
|

Re: error in ManageCollision

Damien André
Administrator
In reply to this post by mumić
Hello, Here is the fix :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<GranOO Version="2.0" TotIteration="100000" TimeStep="1e-4" OutDir="glass"> 
	<PreProcessing>
		<PlugIn Id="_ReadDomain" FileName="./TEST/CompactDomain.agdd" Set="plate"/>
		<PlugIn Id="_NewFrame" Center="(-0.2,0.,0.)" ID="frame1" />
		<PlugIn Id="_NewTool" Type="Sphere" Radius="0.1" FrameID="frame1" Set="bola"/>
		<PlugIn Id="_ConvertElementPairToBeam" YoungModulus="1e7" RadiusRatio="0.5" />
	</PreProcessing>

	<Processing>
		<PlugIn Id="_Check" />
		<PlugIn Id="_ClearLoad" />
		<PlugIn Id="_ApplyBondLoad" />
		<PlugIn Id="_IntegrateAcceleration" Linear="Yes" Angular="Yes"/>
		<PlugIn Id="_ManageCollision" Between="Body/Body" 
			BroadPhase="Raw" Set1="plate" Set2="bola"
			NarrowPhase="WithShape" CallBack="Standard" RestitutionCoeff="0.8" Stiffness="1e11"/>
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-yMin" />
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-yMax" />
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-zMin" />
		<PlugIn Id="_ImposeDisplacement" X="0." Y="0." Z="0." Set="Boundary-zMax" />
		<PlugIn Id="_ImposeDisplacement" X="0.00001*it" Y="0." Z="0." Set="bola" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-yMin" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-yMax" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-zMin" />
		<PlugIn Id="_ImposeOrientation" Clamp="Yes" Set="Boundary-zMax" />
		<PlugIn Id="_ExportToPVD" Field="All" IterLoop="100" />
	</Processing>
	<PostProcessing>
	</PostProcessing>
</GranOO>

The error is raised because your ball is included in the "Global" set. So, you research a contact with two bodies that are the same !  
kind regards, Damien.
Reply | Threaded
Open this post in threaded view
|

Re: error in ManageCollision

mumić
That makes a lot of sense, thank you!

Just to make it clear, does Global set include all of the SetOfs listed? Because in the Brazilian test example file, the contact is Body/Body between the plate and Global sets.
Reply | Threaded
Open this post in threaded view
|

Re: error in ManageCollision

Damien André
Administrator
Nope, the setof named "Global" contains ALL the items. For collision detection, I am agree with you, it remains not clear. I suppose that it works only if the shape are different (tools are non-spherical).