neperfepx / neper

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

Error slicing tessellation #821

Closed eugenianietov closed 4 months ago

eugenianietov commented 4 months ago

I am trying to get a 2D slice of my tessellation, which I have done before in other tessellations. In this case, I want to get a z slice at for example z = 0.1 (my thickness is 0.19). Regardless of the value I use for the z slice, neper breaks as follows:

To Reproduce

$ neper -T -loadtess TiS5_tess.tess -transform 'slice(0.1,0,0,1)' -o 2d_slice

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 4.6.1-6
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt|libscotch (full)
Info   : Running on 4 threads.
Info   : <https://neper.info>
Info   : Copyright (C) 2003-2022, and GNU GPL'd, by Romain Quey.
Info   : No initialization file found (`/mnt/beegfs/home/eugenia.nieto/.neperrc').
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] (none)
Info   : [com line] -loadtess TiS5_tess.tess -transform slice(0.1,0,0,1)
         -o 2d_slice
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Importing tessellation...
Info   :     [i] Parsing file `TiS5_tess.tess'...
Info   :     [i] Parsed file `TiS5_tess.tess'.
Info   : Transforming tessellation...
Info   :   - Slicing...
ver = 43 verfaceqty = 4 != 3
Aborted (core dumped)

I also attached my tessellation file.

Thanks in advance! Eugenia TiS5_tess.txt

rquey commented 4 months ago

Neper is unhappy with the -loadtess tessellation being regularized.

This works:

$ neper -T -n 2 

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 4.8.2-5
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt|libscotch (full)
Info   : Running on 20 threads.
Info   : <https://neper.info>
Info   : Copyright (C) 2003-2022, and GNU GPL'd, by Romain Quey.
Info   : Loading initialization file `/home/rquey/.neperrc'...
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] -tesrformat ascii
Info   : [com line] -n 2
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Creating domain...
Info   : Creating tessellation...
Info   :   - Setting seeds... 
Info   :   - Running tessellation...
Info   : Generating crystal orientations...
Info   : Writing results...
Info   :     [o] Writing file `n2-id1.tess'...
Info   :     [o] Wrote file `n2-id1.tess'.
Info   : Elapsed time: 0.010 secs.
========================================================================

$ neper -T -loadtess n2-id1.tess -transform 'slice(0.01,0,1,0)' -o 2d_slice

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 4.8.2-5
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt|libscotch (full)
Info   : Running on 20 threads.
Info   : <https://neper.info>
Info   : Copyright (C) 2003-2022, and GNU GPL'd, by Romain Quey.
Info   : Loading initialization file `/home/rquey/.neperrc'...
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] -tesrformat ascii
Info   : [com line] -loadtess n2-id1.tess -transform slice(0.01,0,1,0) -o
         2d_slice
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Importing tessellation...
Info   :     [i] Parsing file `n2-id1.tess'...
Info   :     [i] Parsed file `n2-id1.tess'.
Info   : Transforming tessellation...
Info   :   - Slicing...
Info   : Writing results...
Info   :     [o] Writing file `2d_slice.tess'...
Info   :     [o] Wrote file `2d_slice.tess'.
Info   : Elapsed time: 0.003 secs.
========================================================================

but this doesn't work:

$ neper -T -n 2 -reg 1

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 4.8.2-5
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt|libscotch (full)
Info   : Running on 20 threads.
Info   : <https://neper.info>
Info   : Copyright (C) 2003-2022, and GNU GPL'd, by Romain Quey.
Info   : Loading initialization file `/home/rquey/.neperrc'...
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] -tesrformat ascii
Info   : [com line] -n 2 -reg 1
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Creating domain...
Info   : Creating tessellation...
Info   :   - Setting seeds... 
Info   :   - Running tessellation...
Info   : Generating crystal orientations...
Info   : Regularizing tessellation...
Info   :   - loop 1/2: 100% del=3
Info   : Writing results...
Info   :     [o] Writing file `n2-id1.tess'...
Info   :     [o] Wrote file `n2-id1.tess'.
Info   : Elapsed time: 0.005 secs.
========================================================================

$ neper -T -loadtess n2-id1.tess -transform 'slice(0.01,0,1,0)' -o 2d_slice

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 4.8.2-5
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt|libscotch (full)
Info   : Running on 20 threads.
Info   : <https://neper.info>
Info   : Copyright (C) 2003-2022, and GNU GPL'd, by Romain Quey.
Info   : Loading initialization file `/home/rquey/.neperrc'...
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] -tesrformat ascii
Info   : [com line] -loadtess n2-id1.tess -transform slice(0.01,0,1,0) -o
         2d_slice
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Importing tessellation...
Info   :     [i] Parsing file `n2-id1.tess'...
Info   :     [i] Parsed file `n2-id1.tess'.
Info   : Transforming tessellation...
Info   :   - Slicing...
ver = 4 verfaceqty = 4 != 3
Aborted (core dumped)

So, do the slicing before regularization (although I concede this is more a workaround than a fix).