Dear Yves Renard, Thank you for your answer. I was worried that adding boundaries to integration domain would add some unintended values to the result and also that extrapolation would compromise accuracy, but from your answer I now could see it wouldn't. I will try your solutions.
Respectfully yours. On Thu, May 21, 2020 at 8:21 PM Yves Renard <yves.ren...@insa-lyon.fr> wrote: > > Dear Heungson Lee, > > There is a priori two known approaches for the used of Nitsche's methode > for plasticity. The easiest is to consider some additional Gauss points on > the boundary in order to have the plastic strain there as you mention, or > to extrapolate it from the internal Gauss points as it is mentionned for > instance in Seitz thesis > https://mediatum.ub.tum.de/doc/1454145/1454145.pdf > > For the first approach (additional Gauss points on the boundary) you can > normally specify a mesh region where you include both the domain and the > boundary where you want to prescribe the Dirichlet condition, which means > that the region will contain both some elements and some faces of elements. > Then you create the mim_data object with this mesh region. > > > Concerning the variants with nonzero theta parameter, this is indeed > complicated for nonlinear material laws, since the constitutive law has to > be derivated. This is much more complicated for plasticity where the > constitutive law is only piecewise regular and thus cannot be derivated > twice for the solve with Newton algorithm. So it seems that, unless the use > of a regularization, the only variant of Nitsche's method that can be use > for plasticity is the one with theta = 0. > > Best regards, > > Yves > > > > ----- Mail original ----- > De: "Heungson Lee" <heungson....@gmail.com> > À: "getfem-users" <Getfem-users@nongnu.org> > Envoyé: Lundi 18 Mai 2020 09:07:18 > Objet: Imposing Dirichlet B.C. using Nitsche's method in fictitious > domains for elastoplasticity. > > 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.