Subject: [Fenics] Question about boundary conditions

From: Joe Morris <[email-masked]>
Date: Wed, 18 Aug 2010 15:28:31 -0400

Hi All:

I’ve enjoyed getting to know FEniCS over the past couple of months and am
finding it most useful. I have a question about boundary conditions. My
specific application is a little more complicated, but the problem arises
rather simply in 2-D elasticity. Let’s say I have a domain x[0]:0-1,
x[1]:0-1 with boundary conditions:

u=0 on x[1]=0

periodic on x[0]=0 (mapping y[0]=x[0]-1.0)

applied stress of -1 MPa on x[1]=1.0

What I am hoping for is a 1-D solution with sigma[1][1]=-1.0 MPa everywhere.
Although I get that on the interior and near x[1]=0, I get stress
concentrations at the corners where the periodic and applied stress b.c.s
meet. I keep thinking it must be an issue with my choice of subdomains. At
the moment I have the following subdomains defined for each of the b.c.s:

Periodic b.c.:

bool inside(const Array<double>& x, bool on_boundary) const

    {

      return (x[0] < DOLFIN_EPS)

          && (x[0] > -DOLFIN_EPS)

          && on_boundary;

    }

Fixed displacement b.c.:

bool inside(const Array<double>& x, bool on_boundary) const {

      return on_boundary && (x[1]<(0.0+DOLFIN_EPS));

  }

Applied stress b.c.:

if (x[1]>(1.0-DOLFIN_EPS)) {

        // Apply 1 MPa to the top

        values[1]=-1.0e6;

}

I’ve tried a number of permutations where the periodic b.c. is not applied
at the corner, or the stress b.c. is not applied at the corner, but there is
always some sort of perturbation in the stress field near those corners
where the periodic and stress b.c.s meet.

I’m happy to share the code in its gory detail if that helps,

Best regards,

Joe.

Joe Morris.