← Back to team overview

yade-users team mailing list archive

Re: [Question #153589]: Adding an IGeomFunctor subclass

 

Question #153589 on Yade changed:
https://answers.launchpad.net/yade/+question/153589

    Status: Answered => Open

Kneib François is still having a problem:
Ok I checked that and now my new Ig2_Sphere_ChainedCylinder_ScGeom6D is recognized in Yade.
Now I have a segmentation error when the CohFrictMat sphere touch the CohFrictMat cylinder.
Here's my Ig2_Sphere_ChainedCylinder_ScGeom6D::go method :

bool Ig2_Sphere_ChainedCylinder_ScGeom6D::go( const shared_ptr<Shape>& cm1, const shared_ptr<Shape>& cm2, const State& state1, const State& state2, const Vector3r& shift2, const bool& force, const shared_ptr<Interaction>& c)
{
	bool isNew = !c->geom;
	if (Ig2_Sphere_ChainedCylinder_CylScGeom::go(cm1,cm2,state1,state2,shift2,force,c)){//the 3 DOFS from ScGeom are updated here
 		if (isNew) {//generate a 6DOF interaction from the 3DOF one generated by Ig2_Sphere_Sphere_ScGeom
			shared_ptr<ScGeom6D> sc (new ScGeom6D());
			*(YADE_PTR_CAST<ScGeom>(sc)) = *(YADE_PTR_CAST<ScGeom>(c->geom));
			c->geom=sc;}
		if (updateRotations) {YADE_PTR_CAST<ScGeom6D>(c->geom)->precomputeRotations(state1,state2,true,creep);}
		return true;
	}
	else return false;
}


I In fact when the updateRotations method is called, I put "true" instead of isnew so Yade never have to compute the rotation moments.
Maybe it's not the right way ...

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.