This is great, thank you very much!
Simon
On Monday, April 24, 2023 at 5:22:19 PM UTC+2 [email protected] wrote:
> I forgot to paste the commit:
>
> please refer to [6a36465] on 24th April:
> Add demos to show the capacity of the static solver
> ChStaticNonlinearRigidMotion() for a pendulum and a mooring line. These two
> demos also indicates the importantce of the tangent stiffness matrix (Kc)
> of constraint in the static and eigenvalue problems. However, these two
> demos need to improve further, expecially the 3D visualization.
>
> Best regards,
> PENG Chao
> 在2023年4月24日星期一 UTC+2 17:18:11<chao peng> 写道:
>
>> Hello Simon,
>>
>> A pendulum is simple, just when you look at it in the first second.
>>
>> By default, the tangent stiffness matrix of constraint (Kc=
>> \frac{\partial{C_q}\lambda}{\partial{q}}) is not implemented in the
>> system matrix. The system stiffness matrix of a pendulum is zero. Thus, the
>> Newton-Raphson iteration in the ChStaticSolver() don't know what's the
>> potential correct direction to search for the equilibrium status.
>>
>> I just pushed several commits, in which the tangent stiffness matrix (Kc)
>> of ChLinkMateGeneric() and its children classes are implemented, another
>> static solver ChStaticNonlinearRigidMotion() is also implemented to deal
>> with the static problem for the systems including rigid motion DOFs. And
>> two demos, pendulum and mooring line, are also given to show the
>> application of the static solver ChStaticNonlinearRigidMotion(), and to
>> demonstrate the importance of Kc in the static and eigenvalue problem.
>>
>> I need more time to improve the 3D visualization of the demos.
>>
>> Have fun with the demos if you like.
>>
>> Best regards,
>> PENG Chao
>> 在2023年3月20日星期一 UTC+1 17:48:21<Simon> 写道:
>>
>>> Hi,
>>>
>>> in the example below I modelled a simple pendulum. To my understanding,
>>> nonlinear static analysis should place the pendulum in the 'down' position,
>>> i.e. aligned with the gravity vector. However, the static analysis seems to
>>> blow up even for a small deviation from the static equilibrium position
>>> (see output below).
>>> Should the nonlinear static analysis work in this example case?
>>>
>>> Thank you,
>>> Simon
>>>
>>> *Code: *
>>> ChSystemNSC system{};
>>>
>>> auto fixed_body{chrono_types::make_shared<ChBody>()};
>>> fixed_body->SetBodyFixed(true);
>>> auto pendulum_mass{chrono_types::make_shared<ChBody>()};
>>> pendulum_mass->SetPos({1.0, 0.01, 0.0});
>>>
>>> system.Set_G_acc({10.0, 0.0, 0.0});
>>>
>>> auto rotation_link{chrono_types::make_shared<ChLinkLockRevolute>()};
>>> rotation_link->Initialize(pendulum_mass, fixed_body, {});
>>>
>>> system.Add(fixed_body);
>>> system.Add(pendulum_mass);
>>> system.Add(rotation_link);
>>>
>>> system.DoStaticNonlinear(10, true);
>>>
>>>
>>> *Output: *
>>> Nonlinear statics
>>> max iterations: 10
>>> incremental steps: 6
>>> stopping test: correction
>>> relative tol: 0.0001
>>> absolute tol: 1e-08
>>>
>>> --- Nonlinear statics iteration 0 |Dx|_wrms = 12864.8
>>> --- Nonlinear statics iteration 1 |Dx|_wrms = 9543.48
>>> --- Nonlinear statics iteration 2 |Dx|_wrms = 6371.51
>>> --- Nonlinear statics iteration 3 |Dx|_wrms = 10438.1
>>> --- Nonlinear statics iteration 4 |Dx|_wrms = 6571.89
>>> --- Nonlinear statics iteration 5 |Dx|_wrms = 6797.78
>>> --- Nonlinear statics iteration 6 |Dx|_wrms = 6870.05
>>> --- Nonlinear statics iteration 7 |Dx|_wrms = 16263.7
>>> --- Nonlinear statics iteration 8 |Dx|_wrms = 9692.65
>>> --- Nonlinear statics iteration 9 |Dx|_wrms = 29415.4
>>>
>>
--
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/7c4b7201-c53f-4667-bb8e-e8b1579733bfn%40googlegroups.com.