[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Getfem-users] demo_crack.py Dirichlet condition
From: |
Yves Renard |
Subject: |
Re: [Getfem-users] demo_crack.py Dirichlet condition |
Date: |
Thu, 16 Jul 2015 16:28:47 +0200 (CEST) |
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" <address@hidden>
To: "yves renard" <address@hidden>
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 address@hidden
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" <address@hidden>
To: "yves renard" <address@hidden>
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 address@hidden
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" <address@hidden>
To: "getfem-users" <address@hidden>
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
address@hidden
https://mail.gna.org/listinfo/getfem-users