Thanks for the answer Alessandro. I'm in fact using ChMatrixDynamicD. I tried first with ChMatrixNMD since the reference documentation shows: """ chrono.ChVectorD # as ChVector<double> in c++ chrono.ChQuaternionD # as ChQuaternion<double> in c++ chrono.ChMatrix33D # as ChMatrix33<double> in c++ chrono.ChMatrixNMD # as ChMatrixNM<double> in c++ chrono.ChMatrixDynamicD # as ChMatrixDynamic<double> in c++ chrono.ChMatrixD # as ChMatrix<double> in c++ chrono.ChFrameD # as ChFrame<double> in c++ chrono.ChFrameMovingD # as ChFrameMoving<double> in c++ chrono.ChCoordsysD # as ChCoordsys<double> in c++ """ However, it looks like it was not implemented. Then I saw in the changelog that `ChMatrixNM`, `ChMatrixDynamic`, `ChVectorDynamic` are aliases to Eigen type. Without going deeper I gave it a try just in case. I think I understand why it does not work now. Thanks El jueves, 13 de abril de 2023 a las 9:40:30 UTC+2, Alessandro Tasora ([email protected]) escribió:
> hi Alberto, > > the problem is that > chrono::fea::ChElasticityCosseratAdvancedGenericFPM::ChElasticityCosseratAdvancedGenericFPM( > > ... ) requires a ChMatrixNM, that is a fixed size 6x6 matrix built on > stack, but most likely you are passing *ChMatrixDynamicD *, that is a > dynamically-sized matrix on the heap. Even if this is a 6x6 matrix too, > both are not interchangeable. At the moment there is no way to generate a > ChMatrixNM< double,6,6 > in Python because Python does not support > templating, sorry. > > Alessandro > On 12/04/2023 12:24, Alberto Fernández wrote: > > I'm trying to create a Cosserat beam in python using the full matrix with > coupling terms. I think the call to the constructor is correct, but I get a > type error > > Call (Klaw is a pychrono.ChMatrixDynamicD 6x6): > melasticity = fea.ChElasticityCosseratAdvancedGenericFPM(Klaw, 0.0, 0.0, > 0.0, 0.0, 0.0, 0.0) > Error: > TypeError: Wrong number or type of arguments for overloaded function > 'new_ChElasticityCosseratAdvancedGenericFPM'. > Possible C/C++ prototypes are: > > chrono::fea::ChElasticityCosseratAdvancedGenericFPM::ChElasticityCosseratAdvancedGenericFPM() > > chrono::fea::ChElasticityCosseratAdvancedGenericFPM::ChElasticityCosseratAdvancedGenericFPM(chrono::ChMatrixNM< > > double,6,6 > const,double const,double const,double const,double > const,double const,double const) > > I assume this is a problem with the call not being correctly defined in > the python wrapper, but I don't know how to fix it. Is there other route > that may work? > I also tried instantiating ChElasticityCosseratAdvancedGenericFPMand > then using SetEMatrix but no luck that way either. > Thank you for your time > > -- > You received this message because you are subscribed to the Google Groups > "ProjectChrono" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/projectchrono/61be7629-c3cc-4bff-a2e0-595e67cff81cn%40googlegroups.com > > <https://groups.google.com/d/msgid/projectchrono/61be7629-c3cc-4bff-a2e0-595e67cff81cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- You received this message because you are subscribed to the Google Groups "ProjectChrono" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/f009b623-4be0-4231-9c0e-f6b7bc6ee32en%40googlegroups.com.
