Hello,

I am interested in elements / material models with state variables.

I found a good example in ChElementBeamIGA which has "old" 
(plastic_data_old), and "new" (plastic_data), that is updated in the 
EleDoIntegration() function: 
https://github.com/projectchrono/chrono/blob/f391aabd2391644180f87e4479c0edb766bc6985/src/chrono/fea/ChElementBeamIGA.h#L234-L238

I found the call hierarchy for this function to be:

"ChMesh::IntStateIncrement"
      "ChAssembly::IntStateIncrement"
            "ChSystem::StateIncrementX"
                  "ChIntegrableIIorder::StateIncrement"

where the last function is hidden inside operator overloads on "ChState" 
and "ChStateDelta" types:
https://github.com/projectchrono/chrono/blob/f391aabd2391644180f87e4479c0edb766bc6985/src/chrono/timestepper/ChIntegrable.h#L517-L561

For time steppers that perform multiple iterations over a single step 
(e.g., HHT which uses a Newton algorithm) the function EleDoIntegration() 
is called for each of these NR iterations and overwrites the old values of 
the state variables at each iterations.

I believe this behavior might be an issue.

If for any reason the NR algorithm creates non-monotonic iterates of the 
strain in the element (which is likely), the plastic behavior of the beam 
may result in artificial loading / unloading because the state variables 
are updated at each NR iteration.

I believe the state variables should only be updated once per step instead.

Please let me know if you understand and share my concern and if you 
believe this should be addressed. If so, I would be happy to work together 
on a solution.

Best,
Jibril B. Coulibaly


-- 
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 visit 
https://groups.google.com/d/msgid/projectchrono/36d970db-9db6-4c81-b6e4-9102876abd1bn%40googlegroups.com.

Reply via email to