getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] Boundary condition assembling procedure question


From: Renard Yves
Subject: Re: [Getfem-users] Boundary condition assembling procedure question
Date: Fri, 14 Aug 2009 14:22:32 +0200
User-agent: Dynamic Internet Messaging Program (DIMP) H3 (1.1.2)


Véronique Pham <address@hidden> a écrit :

Hi everyone,

I have a question about boundary condition assembling procedure.
I would like to impose a boundary condition like that : du/dn + a.u +
b.d²u/dt² = 0 to implement BGT radiation condition (or similar) where
u is the unknow solution
du/dn define the normal derivative
d²u/dt² the tangential second derivative
and a and b are constants.

For the weak formulation, in 2d, the tangential derivative of u is needed.

Yes, this means that you have a Laplace operator along the boundary. After integration by part on the boundary, you indeed need the tangential derivative. You should obtain the corresponding matrix with for instance

assem.push_mi(mim);
assem.push_mf(mf_u);
assem.push_mat(M);
assem.set("M(#1,#1)+=sym(comp(Grad(#1).Grad(#1))(:,i,:,i))-sym(comp(Grad(#1).Normal().Grad(#1).Normal())(:,i,i,:,j,j))");


Yves.



To impose the normal derivative and the linear part, I use that kind of
assembling :
getfem::generic_assembly assem;
assem.push_mi(mim);
assem.push_mf(mf_u);
std::vector<T> tmp(1, m_a); //m_a is a constant
assem.push_data(tmp);
assem.push_mat(F);
assem.set("F=data(1);"
"M(#1,#1)+=-sym(comp(Base(#1).Base(#1))(:,:).F(p))");
assem.assembly(Robin_region);

What is the best way to introduce the tangente part?

Thanks for your help.







reply via email to

[Prev in Thread] Current Thread [Next in Thread]