Solving Problems Involving Multiple Triangulations

67 views
Skip to first unread message

ah.s...@gmail.com

unread,
Sep 30, 2021, 11:21:53 AM9/30/21
to deal.II User Group
Hello all,

I would like to solve an elastic problem in a thick slab supported by a truss structure, as shown in the attached image. Looking at this problem, this is how I would discretize the domain
  • Use 1D truss elements for the struts shown in green; therefore, one needs to use a Triangulation<1, 3> object
  • Use 3D hex elements for the slab; therefore, we'll be using Triangulation<3, 3>
The nodes of 1D and hex meshes may not coincide; therefore, one needs to impose appropriate linear constraints.

Thanks to the tutorials, I know how to solve for the strut structure and the slab separately. What I am struggling with is setting up one large system of equations that solves for DOFs in the entire system. 

Regards,
Ahmad

P.S. Step 70 comes very close to my problem. The only issue is that it uses FE_Nothing for one of the domains; that is, one domain does not have any dofs.
 



demo.png

Wolfgang Bangerth

unread,
Oct 5, 2021, 8:27:04 PM10/5/21
to dea...@googlegroups.com
On 9/30/21 9:21 AM, ah.s...@gmail.com wrote:
>
> I would like to solve an elastic problem in a thick slab supported by a truss
> structure, as shown in the attached image. Looking at this problem, this is
> how I would discretize the domain
>
> * Use 1D truss elements for the struts shown in green; therefore, one needs
> to use a Triangulation<1, 3> object
> * Use 3D hex elements for the slab; therefore, we'll be using
> Triangulation<3, 3>
>
> The nodes of 1D and hex meshes may not coincide; therefore, one needs to
> impose appropriate linear constraints.
>
> Thanks to the tutorials, I know how to solve for the strut structure and the
> slab separately. What I am struggling with is setting up one large system of
> equations that solves for DOFs in the entire system.

This isn't entirely trivial. One way is to have DoFHandler objects for both
the truss structure and the bulk structure. Then you would create a
BlockSparseMatrix and a BlockVector where the (0,0) block of the matrix and
the (0) block of the vector corresponds to, say, the bulk and the (1,1) block
of the matrix and the (1) block of the vector corresponds to the truss(es).
You can build these blocks individually in the same way as you would build the
corresponding linear system with non-block matrices and vectors for the
individual components. The (0,1) and (1,0) blocks of the matrix are left empty.

If you solved the resulting linear system, you would end up with separate
pieces that are not connected. So you need linear constraints that couple some
of the DoFs of the bulk to the trusses. You can do this via an
AffineConstraints object that is now built not on one or the other of the
DoFHandlers, but indeed on the combination of the two. You'd have to write
some code yourself to figure out what these constraints should be, and how to
put them into the AffineConstraints object. Applying these constraints to the
global block linear system then creates the coupling between the two parts.

Does this make sense?

Best
W.


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/

Ahmad Shahba

unread,
Oct 9, 2021, 10:59:22 AM10/9/21
to dea...@googlegroups.com
Thanks, Wolfgang! It does make sense

Regards,
Ahmad

--
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+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/cde251a0-3099-fac1-a614-4a4bc927f652%40colostate.edu.
Reply all
Reply to author
Forward
0 new messages