Dear Aaron, You are right, there were a problem with mfls_u.adapt(). I just committed a fix on the file interface/src/gf_mesh_fem_set.cc You can download it if you use the svn version.
Yves. ----- Original Message ----- From: "Aaron Jameson Oaks" <[email protected]> To: "yves renard" <[email protected]> Sent: Wednesday, July 15, 2015 6:38:08 PM Subject: RE: [Getfem-users] demo_crack.py Dirichlet condition Hi Yves, Thank you for the response. I'm still working on understanding that condition, but I also wanted to ask about updating the levelset once the solution is complete. If I've understood the documentation correctly, after everything is evaluated and exported for the given levelset (y=0, x<=0), I would call ls.set_values(p,s) to update the levelset?: ls.set_values('y','x-0.25') # extend crack to x=0.25 After changing the levelset, how much of the system needs to be 'adapted' to solve with the updated levelset? I read [1] that the meshlevelset should be updated with mls.adapt() and the integrator should be updated with mim.adapt(). It also said the meshfemlevelset should be updated with mfls_u.adapt(), but python said "MeshFem instance has no attribute 'adapt'". If I attempt to md.solve() again after the first two commands the python kernel crashes without giving an error message. Thank you for your time. Aaron [1] http://download.gna.org/getfem/html/homepage/userdoc/xfem.html ________________________________________ From: Yves Renard [[email protected]] Sent: Tuesday, July 14, 2015 2:33 PM To: Oaks, Aaron Jameson Subject: Re: [Getfem-users] demo_crack.py Dirichlet condition Dear Aaron Oaks, Yes, that's right. Moreover the Dirichlet condition is prescribed on the whole boundary of the domain. Yves ----- Original Message ----- From: "Aaron Jameson Oaks" <[email protected]> To: "yves renard" <[email protected]> Sent: Tuesday, July 14, 2015 5:01:03 PM Subject: RE: [Getfem-users] demo_crack.py Dirichlet condition Hi Yves, Thank you for the quick response. That helped clarify the penalization technique some but the specific condition to be applied is still unclear to me. Could you describe the problem physical condition that this setup represents? Like in the coupled tutorial online the deformation problem to be solved was given by: -div(\sigma(u)) = 0 in \Omega \sigma(u) n = 0 on top/bottom face \sigma(u) n = F on right face u = 0 on left face so for demo_crack it would be: -div(\sigma(u)) = 0 in \Omega u = ?? on \Gamma (boundary) I guess related is what is the particular linear combination that is assembled? If I understand the setup correctly, u is a 2d vector field (unknown), dirichlet_data (dd) is a length 8 array (of coefficients?) and mf_ue is a space defined as the span of 4 crack functions F_{0,1,2,3}. So does the penalized condition become something like?: \int_{\Gamma} (u_x - (dd(1)*F_0(x,y) + dd(3)*F1(x,y) + dd(5)*F2(x,y) + dd(7)*F3(x,y) ) ) * gamma * Test_u_x \int_{\Gamma} (u_y - (dd(2)*F_0(x,y) + dd(4)*F1(x,y) + dd(6)*F2(x,y) + dd(8)*F3(x,y) ) ) * gamma * Test_u_y Thank you again for your time. Aaron ________________________________________ From: Yves Renard [[email protected]] Sent: Tuesday, July 14, 2015 3:28 AM To: Oaks, Aaron Jameson Cc: getfem-users Subject: Re: [Getfem-users] demo_crack.py Dirichlet condition Dear Aaron Oaks, In that example, the Dirichlet data is defined on mf_ue which is in fact not a finite element space, it is defined to span a certain number of global functions. So that the Dirichlet Data is a particular linear combination of these global functions. Of course, it is not possible to prescribe it exactly on the unknow which is define on an enriched finite element space. So, here, the Dirichlet condition is prescribed with a penalization technique. This means that a term \int_{\Gamma} (u - Dirichlet_data) * gamma * Test_u is added to the formulation, with gamma a penalization parameter (1e12 here). Another possibility would be to prescribe the Dirichlet condition with a Lagrange multiplier or with Nitsche's method. Best regards, Yves. ----- Original Message ----- From: "Oaks, Aaron Jameson" <[email protected]> To: "getfem-users" <[email protected]> Sent: Monday, July 13, 2015 9:01:20 PM Subject: [Getfem-users] demo_crack.py Dirichlet condition Greetings, I am a PhD student at University of Illinois and I'm starting in on a project studying crack propagation. I'm just starting out with GetFEM++ and FEM in general, so I apologize if this question is remedial. I went through the thermo-elastic and electrical coupling tutorial on the website, and that went well, but going through the demo_crack.py example I'm having trouble seeing how the Dirichlet BC is assigned. In the coupled tutorial I understood how it worked using either a constant value or values interpolated on the same MeshFem for each boundary node, but with all the different MeshFems in different bases defined to accommodate the crack I seem to be at a loss. Could I get a mathematical description of the Dirichlet condition to be assigned, and an explanation of how the example code goes about assigning that condition? Thank you very much for your time. Aaron Oaks _______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users _______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users
