getfem-users
[Top][All Lists]

## Re: [Getfem-users] Multiple Dirichlet cond. bricks in a 2D Stokes flow p

 From: Yves Renard Subject: Re: [Getfem-users] Multiple Dirichlet cond. bricks in a 2D Stokes flow problem (please dismiss the last message) Date: Thu, 26 Jun 2008 17:35:06 +0200 User-agent: KMail/1.9.5

```
Dear  Iago,

I think that this problem occurs because the two Dirichlet boundaries have a
commond finite element node. So a multiplier is defined on both the two
boundaries to apply the conditions.
I think, there is at least  three ways to try to solve the problem :
- Define a P0 multiplier space for the two conditions
- add a constraint on the supernumeraries multipliers
- use the penalisation option of the Dirichlet brick

yves.

On Thursday 26 June 2008 13:58, Iago Barbeiro wrote:
> Dear Getfem users,
>
> (first I'm sorry about the first incomplete message...It was an accident)
>
> I would like to solve the 2D Stokes flow around a half cylinder with
> symmetry and Dirichlet inlet condition.
>
> I started building my domain with a simple unit square structured mesh, in
> which  I applied  this  geometric transformation:
>
> x'=(Rcy+y^n*(Rex-Rcy))*cos((1-x)*pi);
> y'=(Rcy+y^n*(Rex-Rcy))*sin((1-x)*pi);
>
> that gives the following result:
>
>  ______                      __
>
>  |          |                  /        \
>  |          |     ->       /      _      \
>  |
>  |_____ |              |___/    \___|
>  |
>                                    |-|         Rcy
>                                    |------- |   Rex
>
> Using the test example "stokes.cc" I was able to solve this problem with
> this set of boundary conditions:
>
> 1)Body (half cylinder inside) : Homogeneous Dirichlet (no-slip)
> 2)Inlet  (half circular exterior boundary): Non Homogeneous Dirichlet
> (U=1i+0j)
> 3)Botton (two straight segments): Homogeneous Neumann
>
> This case has given me good results (the vtk plots looked what I expected),
> but THEN when I tried to insert "homogeneous normal component Dirichlet
> condition"  to  represent Symmetry on the two faces of the bottom, I got a
> SEGMENTATION FAULT.
>
> Here is the brick sequence I tried:
>
>  // Linearized elasticity brick.
>   getfem::mdbrick_isotropic_linearized_elasticity<> ELAS(mim, mf_u, 0.0,
> nu);
>
>   // Pressure term
>   getfem::mdbrick_linear_incomp<> INCOMP(ELAS, mf_p);
>
>   // Normal Dirichlet condition brick (symmetry).
>   getfem::mdbrick_normal_component_Dirichlet<> pre_final_model(INCOMP,
> NORMAL_DIRICHLET_BOUNDARY_NUM, mf_rhs);
>
>   // Defining the Full Dirichlet condition value.
>   plain_vector F(nb_dof_rhs * N);
>   gmm::clear(F);
>   for (size_type i = 0; i < nb_dof_rhs; ++i)
>       gmm::copy(sol_u(mf_rhs.point_of_dof(i)),gmm::sub_vector(F,
> gmm::sub_interval(i*N, N)));
>
>   // Full Dirichlet condition brick (cylinder and inlet).
>   getfem::mdbrick_Dirichlet<> final_model(pre_final_model,
> FULL_DIRICHLET_BOUNDARY_NUM);
>   final_model.rhs().set(mf_rhs,F);
>
>   // Generic solve.
>   cout << "Number of variables : " << final_model.nb_dof() << endl;
>   getfem::standard_model_state MS(final_model);
>   gmm::iteration iter(residual, 1, 40000);
>   getfem::standard_solve(MS, final_model, iter);
>
>   // Solution extraction
>   gmm::copy(ELAS.get_solution(MS), U);
>
> Do you guys see something MISSING or overconstraining the problem? any
> wrong order?
>
> What I'm thinking to try next is to use the generalized Dirichlet brick
> prescribing the h(2x2) matrix and the u(2x1) vector all over the outer
> boundaries......but I don't know if it is a good way...
>
> Thanks a lot!!
>
> Iago

--

Yves Renard (address@hidden)       tel : (33) 04.72.43.87.08
Pole de Mathematiques, INSA de Lyon          fax : (33) 04.72.43.85.29
20, rue Albert Einstein
69621 Villeurbanne Cedex, FRANCE
http://math.univ-lyon1.fr/~renard

---------

```