idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.67k stars 1.03k forks source link

ThickenFractures MeshModifier needed in PorousFlow #11007

Closed WilkAndy closed 6 years ago

WilkAndy commented 6 years ago

Rationale

It is quite convenient to simulate fractures as 2D objects (with separate subdomainIDs) in a 3D mesh - mainly because of the ease of meshing. However, this has two disadvantages:

Description

Given a (set of) subdomainID(s) corresponding to the 2D fractures, this MeshModifier will create 3D elements that are joined to those fractures. Each 2D element gets "thickened" to become 2 3D elements (which are very thin in practice): one on each side of the 2D element. The extra nodes created need not be joined to any other nodes in the mesh: the new 3D elements occupy the same space as some of the original 3D elements.

The input parameters will be:

So this is basically a special MeshExtruder, where we extrude in the normal direction and negative-normal direction of each element in the subdomainID.

Sidesets will also have to be created in the same way that MeshExtruder does.

Impact

Ability to ore accurately model physics in and around thin fractures.

WilkAndy commented 6 years ago

I've realised this is a large task, because of the multi-processor problems and sidesets. For posterity, what actually needs to happen (in contrast to what i wrote above) is that the 3D elements adjacent to the 2D elements need to be refined by chopping them into a big element and a thin element that joins the 2D element. I'm closing this issue now because we've thought of a different way of approaching the second disadvantage mentioned above.