Hi all
Recently I started to reconstruct my old hand-written finite element code with deal.II. Although deal.ii offers a lot of useful functionalities that make my life much easier, there is one thing I find inconvenient and not sure what to do.
I'd like to read the mesh file from Abaqus, which can be done with GridIn::read_abaqus. But it seems unable to process the boundary conditions (Dirichlet bc such as displacement) and loads (Neumann bc such as traction, pressure). The way abaqus uses to express boundary conditions is as following:
*Nset, nset=fix-xy, generate
1, 133, 33
*Elset, elset=fix-xy, generate
1, 97, 32
... ...
** Name: BC-1 Type: Displacement/Rotation
*Boundary
Part-1-1.fix-xy, 1, 1
Part-1-1.fix-xy, 2, 2
Basically it marks the node and element ids on which the bc is defined.
And the way abaqus deals with loads is:
*Elset, elset=_top_S3, internal, generate
97, 128, 1
*Surface, type=ELEMENT, name=top
_top_S3, S3
... ...
** LOADS
**
** Name: Load-1 Type: Surface traction
*Dsload, constant resultant=YES
Part-1-1.top, TRVEC, 10., 0., -1., 0.
**
It writes down the element ids and face ids of the faces that we are interested in.
As you can see, both are dependent on the mesh, rather than the geometry. Is there a way to import this information to deal.II? More specifically, I want to generate a map of global_dof_index to boundary values for the boundary conditions, and a non-zero boundary id for the element faces subjected to load.
Thank you
Jie