← Back to team overview

yade-users team mailing list archive

[Question #703419]: About the modifyication of the macro YADE_CLASS_BASE_DOC_ATTRS_CTOR in the class of NormPhys and NormshearPhys

 

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

Hi, everyone!

I am modifing  the macro YADE_CLASS_BASE_DOC_ATTRS_CTOR in the class of NormPhys and NormshearPhys.

And, I add two lines code in NormshearPhys.hpp as below:

#pragma once
#include <core/IPhys.hpp>
namespace yade { // Cannot have #include directive inside.
class NormPhys : public IPhys {
public:
	virtual ~NormPhys() = default;
	// clang-format off
	YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.",
		((Real,kn,0,,"Normal stiffness"))
		((Vector3r,normalForce,Vector3r::Zero(),,"Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1)."))
		((Vector3r,elemnormalForce[15],Vector3r::Zero(),,"normal force for element in notion surface,the 15 merely is a especialy instance with 16 elements on the notion surface")),   //first line
		createIndex();
	);
	// clang-format on
	REGISTER_CLASS_INDEX(NormPhys, IPhys);
};
REGISTER_SERIALIZABLE(NormPhys);
class NormShearPhys : public NormPhys {
public:
	virtual ~NormShearPhys() = default;
	// clang-format off
	YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormShearPhys,NormPhys,
		"Abstract class for interactions that have shear stiffnesses, in addition to normal stiffness. This class is used in the PFC3d-style :yref:`stiffness timestepper<GlobalStiffnessTimeStepper>`.",
		((Real,ks,0,,"Shear stiffness"))
		((Vector3r,shearForce,Vector3r::Zero(),,"Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1)."))
		((Vector3r,elemshearForce[15],Vector3r::Zero(),,"shear force for element in notion surface,the 15 merely is a especialy instance with 16 elements on the notion surface")),// second line
		createIndex();
	);
	// clang-format on
	REGISTER_CLASS_INDEX(NormShearPhys, NormPhys);
};
REGISTER_SERIALIZABLE(NormShearPhys);
} // namespace yade

However, when I call cmake to configure the compilation process, inside the build-directory of the above folder structure. 
There are the errors as below:
[ 17%] Building CXX object CMakeFiles/pkg_common.dir/pkg/common/Cylinder.cpp.o
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp: In constructor ‘yade::NormPhys::NormPhys()’:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13:139: error: expected ‘(’ before ‘[’ token
   13 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.",
      |                                                                                                                                           ^
      |                                                                                                                                           (
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13:139: error: expected ‘{’ before ‘[’ token
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp: In member function ‘virtual void yade::NormPhys::pyRegisterClass(boost::python::api::object)’:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: error: use of ‘this’ in a constant expression
   13 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.",
      | 
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: error: no matching function for call to ‘boost::python::class_<yade::NormPhys, boost::shared_ptr<yade::NormPhys>, boost::python::bases<yade::IPhys>, boost::noncopyable_::noncopyable>::add_property(const char [20], boost::python::api::object, <unresolved overloaded function type>, const char*)’
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:301:11: note: candidate: ‘template<class Get> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, const char*) [with Get = Get; W = yade::NormPhys; X1 = boost::shared_ptr<yade::NormPhys>; X2 = boost::python::bases<yade::IPhys>; X3 = boost::noncopyable_::noncopyable]’
  301 |     self& add_property(char const* name, Get fget, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:301:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: note:   candidate expects 3 arguments, 4 provided
   13 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.",
      | 
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:308:11: note: candidate: ‘template<class Get, class Set> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, Set, const char*) [with Get = Get; Set = Set; W = yade::NormPhys; X1 = boost::shared_ptr<yade::NormPhys>; X2 = boost::python::bases<yade::IPhys>; X3 = boost::noncopyable_::noncopyable]’
  308 |     self& add_property(char const* name, Get fget, Set fset, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:308:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: note:   couldn’t deduce template parameter ‘Set’
   13 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.",
      | 
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: error: use of ‘this’ in a constant expression
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: error: no matching function for call to ‘boost::python::class_<yade::NormPhys, boost::shared_ptr<yade::NormPhys>, boost::python::bases<yade::IPhys>, boost::noncopyable_::noncopyable>::add_property(const char [20], boost::python::api::object, <unresolved overloaded function type>, const char*)’
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:301:11: note: candidate: ‘template<class Get> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, const char*) [with Get = Get; W = yade::NormPhys; X1 = boost::shared_ptr<yade::NormPhys>; X2 = boost::python::bases<yade::IPhys>; X3 = boost::noncopyable_::noncopyable]’
  301 |     self& add_property(char const* name, Get fget, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:301:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: note:   candidate expects 3 arguments, 4 provided
   13 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.",
      | 
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:308:11: note: candidate: ‘template<class Get, class Set> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, Set, const char*) [with Get = Get; Set = Set; W = yade::NormPhys; X1 = boost::shared_ptr<yade::NormPhys>; X2 = boost::python::bases<yade::IPhys>; X3 = boost::noncopyable_::noncopyable]’
  308 |     self& add_property(char const* name, Get fget, Set fset, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:308:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:13: note:   couldn’t deduce template parameter ‘Set’
   13 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.",
      | 
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp: In constructor ‘yade::NormShearPhys::NormShearPhys()’:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28:140: error: expected ‘(’ before ‘[’ token
   28 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormShearPhys,NormPhys,
      |                                                                                                                                            ^
      |                                                                                                                                            (
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28:140: error: expected ‘{’ before ‘[’ token
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp: In member function ‘virtual void yade::NormShearPhys::pyRegisterClass(boost::python::api::object)’:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: error: use of ‘this’ in a constant expression
   28 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormShearPhys,NormPhys,
      | 
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: error: no matching function for call to ‘boost::python::class_<yade::NormShearPhys, boost::shared_ptr<yade::NormShearPhys>, boost::python::bases<yade::NormPhys>, boost::noncopyable_::noncopyable>::add_property(const char [19], boost::python::api::object, <unresolved overloaded function type>, const char*)’
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:301:11: note: candidate: ‘template<class Get> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, const char*) [with Get = Get; W = yade::NormShearPhys; X1 = boost::shared_ptr<yade::NormShearPhys>; X2 = boost::python::bases<yade::NormPhys>; X3 = boost::noncopyable_::noncopyable]’
  301 |     self& add_property(char const* name, Get fget, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:301:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: note:   candidate expects 3 arguments, 4 provided
   28 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormShearPhys,NormPhys,
      | 
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:308:11: note: candidate: ‘template<class Get, class Set> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, Set, const char*) [with Get = Get; Set = Set; W = yade::NormShearPhys; X1 = boost::shared_ptr<yade::NormShearPhys>; X2 = boost::python::bases<yade::NormPhys>; X3 = boost::noncopyable_::noncopyable]’
  308 |     self& add_property(char const* name, Get fget, Set fset, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:308:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: note:   couldn’t deduce template parameter ‘Set’
   28 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormShearPhys,NormPhys,
      | 
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: error: use of ‘this’ in a constant expression
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: error: no matching function for call to ‘boost::python::class_<yade::NormShearPhys, boost::shared_ptr<yade::NormShearPhys>, boost::python::bases<yade::NormPhys>, boost::noncopyable_::noncopyable>::add_property(const char [19], boost::python::api::object, <unresolved overloaded function type>, const char*)’
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:301:11: note: candidate: ‘template<class Get> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, const char*) [with Get = Get; W = yade::NormShearPhys; X1 = boost::shared_ptr<yade::NormShearPhys>; X2 = boost::python::bases<yade::NormPhys>; X3 = boost::noncopyable_::noncopyable]’
  301 |     self& add_property(char const* name, Get fget, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:301:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: note:   candidate expects 3 arguments, 4 provided
   28 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormShearPhys,NormPhys,
      | 
In file included from /usr/include/boost/python.hpp:18,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/RealHPConfig.hpp:35,
                 from /home/xuan/Desktop/yade_1/trunk/lib/high-precision/Real.hpp:231,
                 from /home/xuan/Desktop/yade_1/trunk/lib/base/Math.hpp:12,
                 from /home/xuan/Desktop/yade_1/trunk/core/Bound.hpp:10,
                 from /home/xuan/Desktop/yade_1/trunk/core/Body.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:5,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/usr/include/boost/python/class.hpp:308:11: note: candidate: ‘template<class Get, class Set> boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::add_property(const char*, Get, Set, const char*) [with Get = Get; Set = Set; W = yade::NormShearPhys; X1 = boost::shared_ptr<yade::NormShearPhys>; X2 = boost::python::bases<yade::NormPhys>; X3 = boost::noncopyable_::noncopyable]’
  308 |     self& add_property(char const* name, Get fget, Set fset, char const* docstr = 0)
      |           ^~~~~~~~~~~~
/usr/include/boost/python/class.hpp:308:11: note:   template argument deduction/substitution failed:
In file included from /home/xuan/Desktop/yade_1/trunk/pkg/dem/FrictPhys.hpp:13,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.hpp:9,
                 from /home/xuan/Desktop/yade_1/trunk/pkg/common/Cylinder.cpp:4:
/home/xuan/Desktop/yade_1/trunk/pkg/common/NormShearPhys.hpp:28: note:   couldn’t deduce template parameter ‘Set’
   28 |  YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormShearPhys,NormPhys,
      | 
make[2]: *** [CMakeFiles/pkg_common.dir/build.make:89: CMakeFiles/pkg_common.dir/pkg/common/Cylinder.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:281: CMakeFiles/pkg_common.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
xuan@ubuntu:~/Desktop/yade_1/build$ 
 

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.