Véronique Pham <[email protected]> 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.
>
_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users