Dear all,

First, I would like to apologize for post the diff the "wrong direction". I 
just attached the second version correctly.

Also, I think I need to expand in a few things I did try to do already, 
none with success. First, I tried removing the boundary 6
altogether. Unsurprisingly, this alone did not work, as it is the same as 
simply set p = 0, as done previously.

I tried augmenting this approach by reinserting the boundary conditions, as 
I was suspecting the system could be under-
specified. This still did not work. At this point I started suspecting 
there might be something I was missing from the theory,
but I still tried adding BCs in +x and +z as well. You can guess the 
result. 

I then read Simo et al. 1985, but even then, I don't see why having the +y 
side free would lead to any problems. My intuition
says we should simply a cube, with no distortions at al. The most trivial 
of problems. But this is not what the program above 
outputs.

On Monday, 4 September 2017 16:18:43 UTC+2, Lucas Campos wrote:
>
> Dear all,
>
> I am playing around with the step-44 code, and I have made a few (minor)
> modifications to it. Namely, I set the sides of the cube to be free (that
> is, with BC of null force) and added the whole top side to boundary
> 6. This results in exactly what I expect, that is, a squished cube, with 90
> degrees symmetry. You can see the results in result_squish.png. 
>
> I could also modify the program to have a positive pressure. The result 
> was not
> what I had antecipated, but upon analysing the BCs, it seems correct. 
>  This can
> be found in result_pull.png.
>
> However, when I set the pressure to zero, the program stops converging. I 
> do
> not understand why that happens, as it seems that the analytical 
> formulation is
> independent from an external pressure. I spent quite a while looking how 
> to fix
> this, but it seems I am missing rather subtle. Any ideas how to proceed?
>
> I have added both the source code I am using - which, as I said, is based 
> in
> step-44 - and the diff between the original version and my version. But, 
> in short,
> I removed a few lines make_constraints related to the +- x and +- z sides 
> and
> changed make_grid such that the whole +y side is now part of the boundary 
> 6.
>
> There was no changes in parameters.prm.
>
> Bests
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
1529,1544c1529,1533
<               &&
<               cell->face(face)->center()[1] == 1.0 * parameters.scale)
<             {
<               if (dim==3)
<                 {
<                   if (cell->face(face)->center()[0] < 0.5 * parameters.scale
<                       &&
<                       cell->face(face)->center()[2] < 0.5 * parameters.scale)
<                     cell->face(face)->set_boundary_id(6);
<                 }
<               else
<                 {
<                   if (cell->face(face)->center()[0] < 0.5 * parameters.scale)
<                     cell->face(face)->set_boundary_id(6);
<                 }
<             }
---
>                   &&
>                   cell->face(face)->center()[1] == 1.0 * parameters.scale)
>           {
>               cell->face(face)->set_boundary_id(6);
>           }
2422c2411
<               static const double  p0        = -4.0
---
>               static const double  p0        = 0.0
2493,2508d2481
<       const int boundary_id = 0;
< 
<       if (apply_dirichlet_bc == true)
<         VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                  boundary_id,
<                                                  ZeroFunction<dim>(n_components),
<                                                  constraints,
<                                                  fe.component_mask(x_displacement));
<       else
<         VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                  boundary_id,
<                                                  ZeroFunction<dim>(n_components),
<                                                  constraints,
<                                                  fe.component_mask(x_displacement));
<     }
<     {
2530,2566d2502
<           const int boundary_id = 3;
< 
<           if (apply_dirichlet_bc == true)
<             VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                      boundary_id,
<                                                      ZeroFunction<dim>(n_components),
<                                                      constraints,
<                                                      (fe.component_mask(x_displacement)
<                                                       |
<                                                       fe.component_mask(z_displacement)));
<           else
<             VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                      boundary_id,
<                                                      ZeroFunction<dim>(n_components),
<                                                      constraints,
<                                                      (fe.component_mask(x_displacement)
<                                                       |
<                                                       fe.component_mask(z_displacement)));
<         }
<         {
<           const int boundary_id = 4;
< 
<           if (apply_dirichlet_bc == true)
<             VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                      boundary_id,
<                                                      ZeroFunction<dim>(n_components),
<                                                      constraints,
<                                                      fe.component_mask(z_displacement));
<           else
<             VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                      boundary_id,
<                                                      ZeroFunction<dim>(n_components),
<                                                      constraints,
<                                                      fe.component_mask(z_displacement));
<         }
< 
<         {
2589,2604d2524
<         {
<           const int boundary_id = 3;
< 
<           if (apply_dirichlet_bc == true)
<             VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                      boundary_id,
<                                                      ZeroFunction<dim>(n_components),
<                                                      constraints,
<                                                      (fe.component_mask(x_displacement)));
<           else
<             VectorTools::interpolate_boundary_values(dof_handler_ref,
<                                                      boundary_id,
<                                                      ZeroFunction<dim>(n_components),
<                                                      constraints,
<                                                      (fe.component_mask(x_displacement)));
<         }

Reply via email to