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.
