← Back to team overview

yade-users team mailing list archive

[Question #227157]: On modification of contact law

 

New question #227157 on Yade:
https://answers.launchpad.net/yade/+question/227157

Dear Sir,
I add a new subclass of FrictPhys in FrictPhys.cpp&hpp, and did corresponding modification in Ip2_FrictMat_FrictMat_FrictPhys.cpp&hpp.
Based on this new subclass, I change the contact law  of Law2_ScGeom_FrictPhys_CundallStrack in ElasticContactLaw.cpp.
The compilation of the source code is OK. But yade --check can't pass with following throw:

running:  checkTestTriax.py
FATAL /home/dylan/yadetrunk201304020lineardamp/pkg/common/InteractionLoop.cpp:152 action: None of given Law2 functors can handle interaction #1+56, types geom:ScGeom=1 and phys:FrictPhys=3 (LawDispatcher::getFunctor2D returned empty functor)

I check the InteractionLoop.cpp at line 152:

if(unlikely(!I->functorCache.constLaw)){
			I->functorCache.constLaw=lawDispatcher->getFunctor2D(I->geom,I->phys,swap);
			if(unlikely(!I->functorCache.constLaw)){
				LOG_FATAL("None of given Law2 functors can handle interaction #"<<I->getId1()<<"+"<<I->getId2()<<", types geom:"<<I->geom->getClassName()<<"="<<I->geom->getClassIndex()<<" and phys:"<<I->phys->getClassName()<<"="<<I->phys->getClassIndex()<<" (LawDispatcher::getFunctor2D returned empty functor)");
				//abort();
				exit(1);
			}

It seems that I->phys didn't pass successfully. Except FrictPhys.cpp&hpp, Ip2_FrictMat_FrictMat_FrictPhys.cpp&hpp, ElasticContactLaw.cpp&hpp, do I need to do modification in other scripts? Or problems exists within these scripts?

Thank you!

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