dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #16820
[Bug 490987] Re: Dirichlet boundary condition does not work for "pointwise"
I believe this comes from the fact that the pointwise call always sets
on_boundary to be false:
http://bazaar.launchpad.net/~dolfin-
core/dolfin/main/annotate/head%3A/dolfin/fem/DirichletBC.cpp#L653
Also this method for a pinpoint will constrain more of the pressure than
you want, for better results do:
class Corner : public SubDomain
{
public:
bool inside(const double* x, bool on_boundary) const
{
return (std::abs(x[0] - 1.0) < DOLFIN_EPS ) &&
(std::abs(x[1] - 1.0) < DOLFIN_EPS);
}
};
Of course you have to apply this as pointwise because the geometric and
topological searches only look at facets and this is only hitting one
point.
-- Andy
--
Dirichlet boundary condition does not work for "pointwise"
https://bugs.launchpad.net/bugs/490987
You received this bug notification because you are a member of DOLFIN
Team, which is subscribed to DOLFIN.
Status in DOLFIN: New
Bug description:
The Dirichlet boundary condition does not work if I chose the "pointwise" setting:
In Stokes demo I define my subdomain as:
class Corner : public SubDomain
{
public:
bool inside(const double* x, bool on_boundary) const
{
return on_boundary &&
(std::abs(x[0] - 1.0) < 0.1 + DOLFIN_EPS ) &&
(std::abs(x[1] - 1.0) < 0.1 + DOLFIN_EPS);
}
};
Then I apply for zero BC for pressure in this subdomain:
Corner cr;
Constant zero(2, 0.0);
DirichletBC bc(W1, zero, cr, "pointwise");
// DirichletBC bc(W1, zero, cr, "geometric");
However "geometric" and "topological" options it works.
/murtazo