Dear getfem++ users. I am Heungson Lee. I am trying to impose Dirichlet B.C. using Nitsche's method in fictitious domains for elastoplasticity. For linear elastic problems, it just works fine. But for elastoplastic problems such as Prandtl Reuss plasticity, I was not able to make it work.
I think the major problem is: 1. Stress tensor and its variation on the Dirichlet boundary. -> Nitsche's method brick requires Neumann term on the boundary which uses plastic strain. And the elastoplasticity brick requires plastic strain to be stored in MeshImData. I was not able to find a way to compute plastic strain on the boundary and store it in MeshImData for this purpose. These two problems might be not that important right now. 2. Nitsche's method brick does not recognize nonlinear variables for small strain elastoplasticity brick. -> So I temporarily modified the getfem source code and python interface related to the function 'add_Dirichlet_condition_with_Nitsche_method' to receive an additional boolean parameter from users which tells if the problem is linear or nonlinear problem. It seems that this walk-around works. 3. Fails to calculate the derivative of the Neumann term when theta (one of Nitsche's method parameter) is not zero. -> It seems that Neumann term includes the Heaviside function which is originated from the yield function to distinguish whether it's in elastic or plastic region. Inside 'add_Dirichlet_condition_with_Nitsche_method' function, derivative of the Neumann term is symbolically evaluated, but it fails because of the Heaviside function. Please refer to the attached file to see what I am trying to do. If you have any idea how to make this work. please let me know. I would really appreciate it. Respectfully yours.
plate_with_fixed_hole_nitsche_PrandlReuss_test.py
Description: Binary data