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/3ef8fc44-2fd1-4b41-a39a-593c9c40a011n%40googlegroups.com.

Reply via email to