neperfepx / neper

Polycrystal generation and meshing
http://neper.info
GNU General Public License v3.0
205 stars 53 forks source link

Meshing problems with command "transform cut" #174

Closed Hejie-Guo closed 3 years ago

Hejie-Guo commented 3 years ago

Hi, I use neper to build a RVE with a cylinder hole. The geometry of the RVE is right meshing with tet type mesh as shown in Fig. 1, but wrong when mesh with hex type of mesh as shown in Fig. 2. However, convergense problem was encountered in ABAQUS with tet mesh when strain is large. Therefore, I am trying to find a way to generate hex mesh with the right geometry of RVE.

Is there any way to generate right RVE with hex mesh? This problem was also encountered when I mesh a cubic RVE with a spherical void inside.

The command I used is shown as following:

$ neper -T -n 100 -reg 1 -domain "cube(1,0.1,1)" -transform "cut(cylinder(0.5,0,0.5,,0.1,0,0.1927))" -o RVE_hole
$ neper -M RVE_hole.tess -rcl 1 -format inp -o RVE_hole_tet
$ neper -M RVE_hole.tess -rcl 1 -elttype hex -format inp

Figure 1:image

Figure 2:image

shuaizhou001 commented 3 years ago

Hello! You want to get the modeling like this? 20210422171737

And like this: 20210422171446

Hejie-Guo commented 3 years ago

Yes, that is definitely what I want. Can you tell me how to do that?

Hello! You want to get the modeling like this? 20210422171737

And like this: 20210422171446

Hx83866 commented 3 years ago

Maybe giving a regularization -reg 1 and -rsel could help

Hejie-Guo commented 3 years ago

Maybe giving a regularization -reg 1 and -rsel could help

The results keep the same as before with the command: neper -T -n 100 -reg 1 -rsel 1 -domain "cube(1,0.1,1)" -transform "cut(cylinder(0.5,0,0.5,,0.1,0,0.1927))" -o RVE_hole0426

neper -M RVE_hole0426.tess -rcl 1 -elttype hex -format inp -o RVE_hole

Hejie-Guo commented 3 years ago

Hello! You want to get the modeling like this? 20210422171737

And like this: 20210422171446

Hello! can you tell me the command to do this?

Hx83866 commented 3 years ago

Maybe giving a regularization -reg 1 and -rsel could help

The results keep the same as before with the command: neper -T -n 100 -reg 1 -rsel 1 -domain "cube(1,0.1,1)" -transform "cut(cylinder(0.5,0,0.5,,0.1,0,0.1927))" -o RVE_hole0426

neper -M RVE_hole0426.tess -rcl 1 -elttype hex -format inp -o RVE_hole

The reason for that is the mesh hex size was too large in respect to your domain geometry.

shuaizhou001 commented 3 years ago

Hello! You want to get the modeling like this? 20210422171737 And like this: 20210422171446

Hello! can you tell me the command to do this?

Sorry, I am busy for my UMAT. It can not implement in NEPER. The modeling generates by ABAQUS, it needs you write the code.

  1. draw the modeling and mesh it.
  2. according to the voronoi idea/method to let some elements are the same Set in ABAQUS. Then you can get the modeling like above.
Hejie-Guo commented 3 years ago
  • draw the modeling and mesh it.
  • according to the voronoi idea/method to let some elements are the same Set in ABAQUS. Then you can get the modeling like above

It is appreciated for your answering. Can you share the code with some simple case?

rquey commented 3 years ago

The standalone elements are from a bug, but they vanish if you turn off regularization (which is not needed for hex meshing). But even so, hex meshing does not work very well in this case at the moment.

If you want to go along what @Hx83866 showed, it is the mapping of the tessellation onto a mesh of the domain (the mesh does not know the tessellation). You can get such a mesh simply using Gmsh - you can create the geometry (a box with a cylindrical hole) and then mesh it into hex elements. It should then not be difficult to map the tessellation onto the mesh. I can probably make an option for that.