GithubHelp home page GithubHelp logo

neperfepx / neper Goto Github PK

View Code? Open in Web Editor NEW
198.0 18.0 53.0 493.5 MB

Polycrystal generation and meshing

Home Page: http://neper.info

License: GNU General Public License v3.0

CMake 0.65% C++ 3.28% C 27.24% HTML 0.05% Shell 0.02% Fortran 0.91% Roff 0.18% MATLAB 0.07% SWIG 0.01% Scheme 0.01% Python 0.01% Makefile 0.20% Lex 0.02% Yacc 0.08% GLSL 0.01% POV-Ray SDL 65.89% Asymptote 1.37% CSS 0.01%
tessellation polycrystal microstructure meshing material mechanics mechanics-of-materials voronoi

neper's Introduction

Neper/FEPX

Version 1.0.1-6

This repository contains tools common to Neper and FEPX:

  • neperfepx-git is the replacement for the git command
  • neperfepx-release is the release script
  • pdfshadow is a utility to generate the images containing a shadowing effect

Each of these has its own documentation, which can be accessed by navigating into the source tree.

neper's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neper's Issues

Meshing Module -rcledge

Hello,

I'm trying to get this simple code to finely mesh only one edge of a square domain but I dont know where I am going wrong.

neper -M nfrom_morpho-id161.tess -elttype 'tet' -order 1 -interface 'cohesive' -format 'inp','msh' -rcledge '(domedge==1)?val:0.25'

Any help will be appreciated in rectifying the issue, Thanks!

Z-Set mesh export broken in 2D

hi,
When exporting a mesh in zset geof format, in 2D the mesh is exported as 3D.

Currently:
***geometry
**node
4196 3
1 2.744982259720000e+01 0.000000000000000e+00 0.000
2 2.647086542250000e+01 9.338807713600000e+00 1.500

Should be a 2 on the third line, and no z coordinates:
***geometry
**node
4196 2
1 2.744982259720000e+01 0.000000000000000e+00
2 2.647086542250000e+01 9.338807713600000e+00

thanks

precision of the coordinate of vertices

I am wondering if there is a way to change the precision of the coordinates of vertices. By default, there are 12 digits after decimal, when I import the geometry to Abaqus (points to wires to faces to volume), it can not create face as it can only include 6 digits after the decimal. I am wondering if there is a way to change the default precision of coordinates in Neper.

Thank you.

optimization fails for multiscale big microstructures

Hi there;
here is an example:
Step1:

neper -T -dim 2 -domain "square(300,300)" -n from_morpho -morpho "diameq:0.34*lognormal(4.29,4,from=1.)+0.66*lognormal(7.11,13.9,from=1.),diameq:interval(1,20),sphericity:lognormal(0.001,0.01,1-x)" -tesrsize 512:512 -statcell modeid -o scale1 -format tess,tesr,vtk

Step 2:

awk '{if ($1==1) {print NR,"diameq:lognormal(2.05,0.75,from=0.5),diameq:interval(0.5,5),1-sphericity:lognormal(0.145,0.03)"} else {print NR,"diameq:lognormal(1.78,0.7,from=0.5),diameq:interval(0.5,5),1-sphericity:lognormal(0.145,0.03)"}}' scale1.stcell > scale2-morph

Step 3:

neper -T -n 425 -domain "cube(300,300,300)" -morphooptiini "coo:msfile(scale1.tess),weight:msfile(scale1.tess)" -morpho "columnar(z)" -tesrsize 512:512:512 -o scale1-3D -format tess,tesr,vtk

Step 4:

neper -T -id 1::2 -domain "cube(300,300,300)" -n from_morpho::from_morpho -morpho "msfile(scale1-3D.tess)::msfile(scale2-morpho)" -morphooptialgo "subplex::subplex" -morphooptistop "itermax=7000::itermax=7000" -tesrsize 1024:1024:1024 -o scale2 -tesrformat "ascii" -format tess,tesr,vtk

The final step stops with a bug report error (. if the "itermax" parameter is increased, sometimes it goes further with tesselation but stops again with the same error. I have noticed that the final solution is a very big number while fmin is a small value.
example of the tail of my Slurm file:

teration   6993: fmin=0.039809048 f=6196.709123290
Iteration   6994: fmin=0.039809048 f=5650.356232039
Iteration   6995: fmin=0.039809048 f=4649.825485562
Iteration   6996: fmin=0.039809048 f=5946.673046066
Iteration   6997: fmin=0.039809048 f=4649.825568279
Iteration   6998: fmin=0.039809048 f=4649.825661488
Iteration   6999: fmin=0.039809048 f=4649.825373768
Iteration   7000: fmin=0.039809048 f=4649.826241255
Info   :     > 
Final   solution: f   =7608.280592484
Info   :     > Reached `itermax' criterion.
number of common seeds = 4 != 3
seeds = 304 761 -6 149
Error  : You have discovered a bug in Neper!  Please send a full bug
         report to <[email protected]>.  Thank you.

Thanks,

Ali

Problem with Generating Simple Meshes

Hello - I am having an issue generating the simplest of meshes. I read through the previous closed issue #30 , and reinstalled a working Gmsh.

Creating a simple tessellation works fine:

neper -T -n 1 -id 1

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 3.5.1
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt
Info   : Running on 4 threads.
Info   : <http://neper.info>
Info   : Copyright (C) 2003-2019, and GNU GPL'd, by Romain Quey.
Info   : Loading initialization file /home/cmcelfresh/.neperrc...
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] (none)
Info   : [com line] -n 1 -id 1
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Creating domain...
Info   : Creating tessellation...
Info   :   - Setting seeds... 
Info   :   - Generating crystal orientations...
Info   :   - Running tessellation...
Info   : Writing results...
Info   :     [o] Writing file n1-id1.tess...
Info   :     [o] Wrote file n1-id1.tess.
Info   : Elapsed time: 0.093 secs.
========================================================================

However, when I move to mesh it I get the following issue (run with valgrind):

valgrind neper -M n1-id1.tess 

==12053== Memcheck, a memory error detector
==12053== Copyright (C) 2002-2017, and GNU GPLd, by Julian Seward et al.
==12053== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==12053== Command: neper -M n1-id1.tess
==12053== 

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 3.5.1
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt
Info   : Running on 4 threads.
Info   : <http://neper.info>
Info   : Copyright (C) 2003-2019, and GNU GPLd, by Romain Quey.
Info   : Loading initialization file /home/cmcelfresh/.neperrc...
Info   : ---------------------------------------------------------------
Info   : MODULE  -M loaded with arguments:
Info   : [ini file] -gmsh /usr/bin/gmsh
Info   : [com line] n1-id1.tess
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   :   - Reading arguments...
Info   : Loading input data...
Info   :   - Loading tessellation...
Info   :     [i] Parsing file n1-id1.tess...
Info   :     [i] Parsed file n1-id1.tess.
Info   : Meshing...
Info   :   - Preparing... (cl = 0.5) 100%
Info   :   - 0D meshing... 100%
Info   :   - 1D meshing... 100%
Info   :   - 2D meshing... 100% (0.89|0.89/ 0%| 0%|100%)
Info   :   - Fixing 2D-mesh pinches...
Info   :   - 3D meshing... ==12053== Thread 3:
==12053== Syscall param setitimer(&value->it_value) points to uninitialised byte(s)
==12053==    at 0x500CA8B: setitimer (in /usr/lib64/libc-2.29.so)
==12053==    by 0x5851F2: ut_sys_runwtime (in /usr/local/bin/neper)
==12053==    by 0x4BFA7A: nem_mesh_3d_gmsh (in /usr/local/bin/neper)
==12053==    by 0x4B34FF: nem_meshing_3D_poly_algo (in /usr/local/bin/neper)
==12053==    by 0x4B2A27: nem_meshing_3D_poly (in /usr/local/bin/neper)
==12053==    by 0x4B215F: nem_meshing_3D._omp_fn.0 (in /usr/local/bin/neper)
==12053==    by 0x4EF893D: ??? (in /usr/lib64/libgomp.so.1.0.0)
==12053==    by 0x4F394BF: start_thread (in /usr/lib64/libpthread-2.29.so)
==12053==    by 0x504E552: clone (in /usr/lib64/libc-2.29.so)
==12053==  Address 0x6521900 is on thread 3s stack
==12053==  in frame #1, created by ut_sys_runwtime (???:)
==12053== 
gmsh: malloc.c:2389: sysmalloc: Assertion (old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0) failed.
...etc...
gmsh: malloc.c:2389: sysmalloc: Assertion (old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0) failed.
Error  :     > Meshing of poly 1 (1) failed
==12053== 
==12053== Process terminating with default action of signal 6 (SIGABRT): dumping core
==12053==    at 0x4F89E35: raise (in /usr/lib64/libc-2.29.so)
==12053==    by 0x4F74894: abort (in /usr/lib64/libc-2.29.so)
==12053==    by 0x438E99: ut_print_message.cold (in /usr/local/bin/neper)
==12053==    by 0x4B2B96: nem_meshing_3D_poly (in /usr/local/bin/neper)
==12053==    by 0x4B215F: nem_meshing_3D._omp_fn.0 (in /usr/local/bin/neper)
==12053==    by 0x4EF893D: ??? (in /usr/lib64/libgomp.so.1.0.0)
==12053==    by 0x4F394BF: start_thread (in /usr/lib64/libpthread-2.29.so)
==12053==    by 0x504E552: clone (in /usr/lib64/libc-2.29.so)
==12053== 
==12053== HEAP SUMMARY:
==12053==     in use at exit: 60,064 bytes in 2,523 blocks
==12053==   total heap usage: 126,474 allocs, 123,951 frees, 3,933,120 bytes allocated
==12053== 
==12053== LEAK SUMMARY:
==12053==    definitely lost: 13,278 bytes in 783 blocks
==12053==    indirectly lost: 14,736 bytes in 966 blocks
==12053==      possibly lost: 960 bytes in 3 blocks
==12053==    still reachable: 31,090 bytes in 771 blocks
==12053==         suppressed: 0 bytes in 0 blocks
==12053== Rerun with --leak-check=full to see details of leaked memory
==12053== 
==12053== Use --track-origins=yes to see where uninitialised values come from
==12053== For lists of detected and suppressed errors, rerun with: -s
==12053== ERROR SUMMARY: 18 errors from 1 contexts (suppressed: 0 from 0)
Aborted (core dumped)

I've tested the code using the ctest command and all passed without issue:

100% tests passed, 0 tests failed out of 283
Total Test time (real) = 185.50 sec

I can also run Gmsh from the command successfully using:

neper -T -n 1 id-1 -format geo
gmsh -3 n1-id1.geo -format msh2

Info    : Running gmsh -3 n1-id1.geo -format msh2' [Gmsh 4.5.1, 1 node, max. 1 thread]
Info    : Started on Fri Jan 17 10:52:39 2020
Info    : Reading n1-id1.geo...
Info    : Done reading n1-id1.geo
Info    : Meshing 1D...
Info    : [  0 %] Meshing curve 1 (Line)
Info    : [ 10 %] Meshing curve 2 (Line)
Info    : [ 20 %] Meshing curve 3 (Line)
Info    : [ 30 %] Meshing curve 4 (Line)
Info    : [ 40 %] Meshing curve 5 (Line)
Info    : [ 50 %] Meshing curve 6 (Line)
Info    : [ 50 %] Meshing curve 7 (Line)
Info    : [ 60 %] Meshing curve 8 (Line)
Info    : [ 70 %] Meshing curve 9 (Line)
Info    : [ 80 %] Meshing curve 10 (Line)
Info    : [ 90 %] Meshing curve 11 (Line)
Info    : [100 %] Meshing curve 12 (Line)
Info    : Done meshing 1D (0.000738 s)
Info    : Meshing 2D...
Info    : [  0 %] Meshing surface 1 (Plane, Frontal)
Info    : [ 20 %] Meshing surface 2 (Plane, Frontal)
Info    : [ 40 %] Meshing surface 3 (Plane, Frontal)
Info    : [ 50 %] Meshing surface 4 (Plane, Frontal)
Info    : [ 70 %] Meshing surface 5 (Plane, Frontal)
Info    : [ 90 %] Meshing surface 6 (Plane, Frontal)
Info    : Done meshing 2D (0.012988 s)
Info    : Meshing 3D...
Info    : 3D Meshing 1 volume with 1 connected component
Info    : Tetrahedrization of 280 nodes in 0.004421 seconds
Info    : Reconstructing mesh...
Info    :  - Creating surface mesh
Info    :  - Identifying boundary edges
Info    :  - Recovering boundary
Info    : Done reconstructing mesh (0.008962 s)
Info    : Found volume 1
Info    : It. 0 - 0 nodes created - worst tet radius 2.93369 (nodes removed 0 0)
Info    : 3D refinement terminated (340 nodes total):
Info    :  - 0 Delaunay cavities modified for star shapeness
Info    :  - 0 nodes could not be inserted
Info    :  - 1137 tetrahedra created in 0.003219 sec. (353215 tets/s)
Info    : Done meshing 3D (0.021646 s)
Info    : Optimizing mesh...
Info    : Optimizing volume 1
Info    : Optimization starts (volume = 1) with worst = 0.161027 / average = 0.77421:
Info    : 0.00 < quality < 0.10 :         0 elements
Info    : 0.10 < quality < 0.20 :         3 elements
Info    : 0.20 < quality < 0.30 :        12 elements
Info    : 0.30 < quality < 0.40 :         9 elements
Info    : 0.40 < quality < 0.50 :        27 elements
Info    : 0.50 < quality < 0.60 :        35 elements
Info    : 0.60 < quality < 0.70 :       203 elements
Info    : 0.70 < quality < 0.80 :       297 elements
Info    : 0.80 < quality < 0.90 :       363 elements
Info    : 0.90 < quality < 1.00 :       181 elements
Info    : 15 edge swaps, 0 node relocations (volume = 1): worst = 0.31728 / average = 0.78353 (0.000553 s)
Info    : No ill-shaped tets in the mesh :-)
Info    : 0.00 < quality < 0.10 :         0 elements
Info    : 0.10 < quality < 0.20 :         0 elements
Info    : 0.20 < quality < 0.30 :         0 elements
Info    : 0.30 < quality < 0.40 :         8 elements
Info    : 0.40 < quality < 0.50 :        23 elements
Info    : 0.50 < quality < 0.60 :        38 elements
Info    : 0.60 < quality < 0.70 :       199 elements
Info    : 0.70 < quality < 0.80 :       296 elements
Info    : 0.80 < quality < 0.90 :       371 elements
Info    : 0.90 < quality < 1.00 :       180 elements
Info    : Done optimizing mesh (0.001664 s)
Info    : 340 nodes 1742 elements
Info    : Writing n1-id1.msh...
Info    : Done writing n1-id1.msh
Info    : Stopped on Fri Jan 17 10:52:39 2020
Info    : No current model available: creating one

Any help would be greatly appreciated!

Quad dominant or all Quad mesh in 2D (preserving grain boundaries)

Include the possibility of having Quad dominant meshes or All Quads meshes in 2D.

For example with the options:
-elttype quad_dominant
-elttype all_quad

Why: If studying intergranular fracture with cohesive elements, the grain geometry is of utmost importance. Currently, only triangular elements preserve the grain geometry, since with the option -elttype quad, a regular grid is created.
However, if the grains are modelled with an incompressible material (as it is the case of crystal plasticity), the standard tri 3 and tri 6 elements should not be used since they are highly prone to volumetric locking.
In this case, quad 4 (FBAR for example) or quad 8 elements should be used.

Case 1:
Gmsh enables the user to choose "Recombine all triangular meshes" while meshing a geometry. This will lead to a quad dominant mesh.
Example:
image
image

(in this case, it was able to generate only quad elements but sometimes, due to complex geometry, some triangular elements remain)

Case 2:
Gmsh enables the user to change the Subdivision algorithm to "All Quads" while meshing a geometry. This will lead to a mesh that only contains quad elements (the element size may reduce).
Example:
image
image

Disclaimer: These examples may not present the best meshes in terms of element quality but it was something done quite fast and only for demonstration purposes.

Gmsh binary handling not robust

When running a development build of gmsh, the neper -M -gmsh $(which gmsh) (/usr/local/bin/gmsh) fails with

You have to specify a valid access path to the gmsh binary
Aborted (core dumped)

Which doesn't provide the second half of the message on line 45 since the output wasn't flushed.

Is it possible to make this a little more robust to handle development builds? I want to use this as a test case for profiling gmsh.

Also - compiling neper with gcc 8 gives lots of warnings about misleading indents, deprecated features and other problems.

Issues with generating wider grain size distribution

I have been trying to generation 2D tesselation for wider grain size distribution ( both normal and lognormal distributions)

Code used:
neper -T -n from_morpho -id 1 -dim 2 -domain "square(60,10)" -morpho "diameq:lognormal(0.285,0.226),sphericity:lognormal(0.145,0.03,1-sphericity)" -statcell diameq,circularity -o Grain_2D-format ply,tess

Version neper 3.5.0

I have tried three cases. The input & output mean/standard deviation values are shown herewith. (All-grain values in microns.)

Case 1: Log normal distribution
Input grain values : mean = 285 & Std=226 | Output : mean 338 & std=130

Case 2: Log normal distribution
Input grain values : mean = 285 & Std=86 | Output: mean 276 & std=107

Case 3: Normal distribution
Input grain values : mean = 285 & Std=226 | Output mean 337 & std=137

Can we obtain closer agreements with the input values for wider size distribution cases?

Creating a regular Voronoi tesselation

I'm an absolute neper newbie, so probably my problem is very simple to solve:
I have a domain (a cube of edge length 1) containing a set of points (32 in my current case). I simply want neper to create a Voronoi decomposition (preferedly with periodic boundary conditions) and mesh it.
From the manual, I suppose I need the option -n from_morpho and -morpho 'voronoi' and I need to provide the coordinates of my points via -morphooptiini "coo:file(FILENAME)"
However, when I try this:
neper -T -n 'from_morpho' -id 1 -morphooptiini "coo:file(FILE),weight:0" -morpho 'voronoi'
I get
Error : . Could not process '-n from_morpho'.

(I tried doing it with and without quotes for the arguments, but with no success.)

When I run with a fixed value for n, it works for n<4, but then I only get 1-3 domains, not the decomposition I need. When I chose a larger value for n, I get an error like this:

number of common seeds = 4 != 3
seeds = 7 -5 27 4
Error : You have discovered a bug in Neper! Please send a full bug
report to [email protected]. Thank you.

Any help would be greatly appreciated. I add the coordinate file as zip-file.

POSCAR-00002.zip

[FEpX] Loading a .msh file to repartition results in reordering of face set

When generated a mesh file for FEpX from the same tessellation it seems that partitioning during the original meshing module call versus loading an unpartitioned .msh file and outputting a partitioned file results in reordering of the printed faset.

This bug report is occurring in Neper-3.4.0. The following commands can reproduce the error:

neper -T -n 50 -id 1 -reg 1 -mloop 4 -format tess -domain "cube(1,1,1)"

Next, produce a 'serial' mesh output in FEpX format (i.e. no partition):

neper -M n50-id1.tess -order 2 -o n50-id1 -format fepx,msh -faset z0,z1,x0,x1,y0,y1

Now, we produce a mesh that is partitioned at run time (1) and one that is loaded into Neper from the above 'serial' mesh and partitioned (2):

(1) neper -M n50-id1.tess -order 2 -o n50-id1 -format fepx,msh -faset z0,z1,x0,x1,y0,y1 -part 1:4

(2) neper -M -loadmesh n50-id1.msh -part 1:4 -format fepx,msh -faset z0,z1,x0,x1,y0,y1

For example, this results in the following typical reordering in the faset for the resulting FEpX mesh. Shown are is the first line of the z0 face set after the declaration of the number of surfaces and the number of elements with a face on the z0 surface:

Partitioned at run-time:
1774 2714 3106 2716 3107 2768 3108

Partitioned after loading serial mesh:
1774 2714 3108 2768 3107 2716 3106

Above reordered node numbers are bolded for clarity. I'm unsure of the cause of this reordering, but it seems to indirectly be the cause of a sign change on surface normal calculation internal to FEpX and results in flipped signs on reported target surface loads.

Question about 2D mesh output to inp

I created a 2D tess file and want to mesh this file to get the inp file. I want to get the edges data, so I used “-dim all”:
$ neper -T -n 10 -id 1 -dim 2
$ neper -M n10-id1.tess -dim all -format inp
But the inp file does not contain edges data, only faces data.
I think that the -dim all statement in 3D can get all the elements data, but whether there is a bug in 2D.

Memory error in ut_sys_runwtime

A memory error always arises (but never gets Neper to fail) in ut_sys_runwtime. It can be seen using, e.g., valgrind.

First, Neper must be compiled in debugging mode:

$ cmake -DDEVEL_DEBUGGING_FLAG=ON -DDEVEL_OPTIMIZATION=OFF ..
$ make

Then, the error can be seen using

$ neper -T -n 1
$ valgrind neper -M n1-id1.tess

which yields

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 3.4.1-48                                 
Info   : Built with: gsl nlopt libscotch openmp      
Info   : Running on 8 threads.                       
Warning: Built with: no optimization.            NOT FOR PRODUCTION USE.
Warning: Built with: debugging compilation flag. NOT FOR PRODUCTION USE.
Info   : <http://neper.sourceforge.net>
Info   : Copyright (C) 2003-2019, and GNU GPL'd, by Romain Quey.      
Info   : Comments and bug reports: <[email protected]>.      
Info   : Loading initialization file `/home/rquey/.neperrc'...           
Info   : ---------------------------------------------------------------
Info   : MODULE  -M loaded with arguments:
Info   : [ini file] -order 1 -gmsh /home/rquey/bin/gmsh -tmp /home2/tmp
Info   : [com line] n1-id1.tess
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   :   - Reading arguments...
Info   : Loading input data...
Info   :   - Loading tessellation...
Info   :     [i] Parsing file `n1-id1.tess'...
Info   :     [i] Parsed file `n1-id1.tess'.
Info   : Meshing...
Info   :   - Preparing... (cl = 0.5) 100%
Info   :   - 0D meshing... 100%
Info   :   - 1D meshing... 100%
Info   :   - 2D meshing... 100% (0.89|0.89/ 0%| 0%|100%)
Info   :   - Fixing 2D-mesh pinches...
Info   :   - 3D meshing... ==27456== Thread 6:
==27456== Syscall param setitimer(&value->it_value) points to uninitialised byte(s)
==27456==    at 0x65E0E57: setitimer (syscall-template.S:78)
==27456==    by 0x349E8C: ut_sys_runwtime (ut_sys.c:76)
==27456==    by 0x227125: nem_mesh_3d_gmsh (nem_mesh_gmsh1.c:105)
==27456==    by 0x217D6F: nem_meshing_3D_poly_algo (nem_meshing_3D3.c:30)
==27456==    by 0x21765E: nem_meshing_3D_poly (nem_meshing_3D2.c:29)
==27456==    by 0x21726A: nem_meshing_3D._omp_fn.0 (nem_meshing_3D1.c:46)
==27456==    by 0x5EBB95D: ??? (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==27456==    by 0x62F36DA: start_thread (pthread_create.c:463)
==27456==    by 0x662C88E: clone (clone.S:95)
==27456==  Address 0x9701870 is on thread 6's stack
==27456==  in frame #1, created by ut_sys_runwtime (ut_sys.c:58)
==27456==
100% (0.89|0.89/100%| 0%| 0%)
Info   : Searching nsets...
Info   : Writing mesh results...
Info   :   - Preparing mesh...
Info   :   - Mesh properties:
Info   :     > Node number:       52
Info   :     > Elt  number:      148
Info   :     > Mesh volume:    1.000
Info   :   - Writing mesh...
Info   :     [o] Writing file `n1-id1.msh'...
Info   :     [o] Wrote file `n1-id1.msh'.
Info   : Elapsed time: 2.982 secs.
========================================================================

Problem with instant abortion when trying to mesh simplest possible example

I have some troubles meshing the simplest possible example:

➜  build ./neper -T -n 2 -id 1

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 3.5.1
Info   : Built with: gsl|muparser|opengjk|nlopt
Info   : <http://neper.info>
Info   : Copyright (C) 2003-2019, and GNU GPL'd, by Romain Quey.
Info   : No initialization file found (`/Users/kristoffer/.neperrc').
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] (none)
Info   : [com line] -n 2 -id 1
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Creating domain...
Info   : Creating tessellation...
Info   :   - Setting seeds...
Info   :   - Generating crystal orientations...
Info   :   - Running tessellation...
Info   : Writing results...
Info   :     [o] Writing file `n2-id1.tess'...
Info   :     [o] Wrote file `n2-id1.tess'.
Info   : Elapsed time: 0.004 secs.
========================================================================

➜  build ./neper -M n2-id1.tess

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 3.5.1
Info   : Built with: gsl|muparser|opengjk|nlopt
Info   : <http://neper.info>
Info   : Copyright (C) 2003-2019, and GNU GPL'd, by Romain Quey.
Info   : No initialization file found (`/Users/kristoffer/.neperrc').
Info   : ---------------------------------------------------------------
Info   : MODULE  -M loaded with arguments:
Info   : [ini file] (none)
Info   : [com line] n2-id1.tess
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   :   - Reading arguments...
Info   : Loading input data...
Info   :   - Loading tessellation...
Info   :     [i] Parsing file `n2-id1.tess'...
Info   :     [i] Parsed file `n2-id1.tess'.
Info   : Meshing...
Info   :   - Preparing... (cl = 0.3969) 100%
Info   :   - 0D meshing... 100%
Info   :   - 1D meshing... 100%
Info   :   - 2D meshing...   0% (0|0/ 0| 0| 0)Error  :     > Meshing of face 1 failed
[1]    1088 abort      ./neper -M n2-id1.tess

I am guessing one of the dependencies are to blame but is there anything I can run that would help pinpoint a bit more clearly what the problem is?

I tried poke a bit with lldb but didn't really get what was happening except that this triggers:

https://github.com/rquey/neper/blame/devel/src/neper_m/nem_meshing/nem_meshing_2D/nem_meshing_2D2.c#L92-L94

(lldb) p (*pMultim)
(MULTIM) $9 = {
  algoqty = 3
  algos = 0x0000000100605b00
  algohit = 0x0000000100602950
  mOdis = 0x0000000100603750
  mOsize = 0x0000000100603aa0
  mO = 0x0000000100603b90
  Oalgo = 0x0000000100603da0
  Odis = 0x0000000100603de0
  Osize = 0x0000000100603e50
  O = 0x0000000100603ec0
}
(lldb) p (*pMultim).Oalgo[face]
(int) $10 = -1

(Running the tests shows the same problem with the meshing):

43% tests passed, 160 tests failed out of 283

Total Test time (real) =  12.40 sec

The following tests FAILED:
        116 - M_meshing (Child aborted)
        117 - M_meshing_hex (Child aborted)
        118 - M_cl (Child aborted)
        119 - M_rcl (Child aborted)
        120 - M_cl_hex (Child aborted)
...

Multi threading performance of meshing module drops off past 16 threads

I've noticed that the meshing module seems to slow down over time while meshing large domains and have also found that there seems to be a functional limit for multi threading in the meshing module. Benchmarking tests for varying mesh densities were performed on a Dell Precision 7820 running Ubuntu 18.04 LTS with Intel Xeon Platinum 8260 CPU @ 2.40GHz x 96. Neper-3.5.1 was utilized with gmsh-3.0.6 compiled from source. The tests consisted of 3 different meshes with 10, 100, and 1000 grains, respectively, and the number of threads was increased from 1 to 96 in increasing powers of two.

The tessellation/meshing commands used to generate the domain were:

neper -T -n XX -id 1 -reg 1 -mloop 4 -domain "cube(1,1,1)"
neper -M nXX-id1.tess -order 2 -o nXX-id1 -format msh

normalized_time_to_mesh_dualcpu

Above is a plot showing the runtime for the benchmark tests normalized by the serial runtime. Note that after 16 threads, the runtime generally begins increasing at varying rates which is consistent across the 3 orders of magnitude tested.

Can I add random void inclusions into the microstructure?

Hello, I am wondering if Neper can add small void inclusions (much smaller than the grain size) into the tessellation or raster tessellation? The ultimate goal is to mesh the tessellation or raster tessellation excluding these void inclusions. The voids are ideally round (sphere) or square (cube). Thanks!

Unable to read generated inp file with cohesive interface in abaqus

Hello Sir,
I tried to generate a bicrystal with cohesive interface (both as .msh file as well as .inp file). The .msh file can be opened in gmsh without any problem. But as soon as I try to open the .inp file in abaqus, following error is thrown:

AbaqusException: in keyword *ELEMENT, file "n2-2dCZM.inp", line 110: Element number is not an integer or exceeds 9 digits for element of type CPE3.

I have used the following commands to generate the mesh file:
grains=2
filename="n$grains-2dCZM"
neper -T -n $grains -id 2 -dim 2 -domain "square(1,1)" -periodicity 0 -morpho voronoi -o $filename
neper -M $filename.tess -rcl 0.8 -order 1 -interface cohesive -format msh -o $filename
neper -M $filename.tess -rcl 0.8 -order 1 -interface cohesive -format inp -o $filename

Could you please help me understand what I might be doing wrong?

shared_libraries

Dear Colleagues,
How to get rid of the error ?

ewpostek@tryton-ap:/users/work/ewpostek/neper/neper-devel/install/bin$ ./neper
./neper: error while loading shared libraries: libgsl.so.23: cannot open shared object file: No such file or directory

I extended the env variable to point out the directory with libgsl.so.23 but it did not work.

best,
Elek

CTestCustom.cmake configure_file Problem configuring file

I tried to compile NEPER on Fedora 20, but when I create the configuration files with cmake this line
configure_file (CTestCustom.cmake ${CMAKE_CURRENT_LIST_DIR}/CTestCustom.cmake)
returns
configure_file Problem configuring file
because the file CTestCustom.cmake cannot be found.

As a quick fix I removed that line and Cmake runs correctly, NEPER compiles and can be tested properly because CMake creates CTestTestfile.cmake. There might be reasons for having a CTestCustom.cmake, but this quick fix might be helpful to someone :-)

-M -rcl 'file(file_name)'

Hi Romain Quey,

I have a quick question about the "-rcl" command. In the documentation file from the 12th March 2020, it is written page 30 that the rcl value can be loaded "from an external file using the syntax ‘file(file_name)". But I didn't find any description of the file format.
Is it just a list of values such as:
poly_id rcl_value
or
seed_id rcl_value

Also, if all the seeds (or polyhedron) do not appear in this file, what value do they get?

I thank you in advance,
Regards,
Dr. R. Bretin

Import user-defined data obtained from EBSD

Bonjour Prof. Romain,

Firstly, I am very grateful to you for providing this free open software neper. I am trying to generate polycrystal mesh with neper and the results are really great. However, I have the following question. Can you please go through it and answer me if this is possible?

Q.1 >How to import user-defined data (grain morphology, grain size distribution, and orientation(texture)) which is obtained from experimentally measured EBSD in Neper?
I think I am able to generate the user defined crystal orientation data using the Crystal orientation options, "ori".
‘file(filename):des’ for reading orientations from file filename.
For generation using the euler angles bunge convention, I simply define the "e" in the place of 'des'?

Merci beaucoup :)

Bien cordialement
Preetham Alluri

Experimental data

259.493184 90.217113 213.733597
84.690105 104.440721 299.908358
261.563114 95.106324 140.132003
92.566247 88.191844 223.654815
260.951927 95.979226 226.056886
12.792870 132.007337 189.317481
169.278815 58.322459 182.482430
168.578867 127.845071 269.745798
110.568289 87.518977 293.056839
190.629753 146.474133 98.601316

image

Defining Circularity as input parameter causes error

Hello,
I'm trying to create some 2D morphologies out of statistical Data. In the manual is a section, where the parameter "circularity" is used as 2D equivalent of sphericity. When i try to execute this command:

$NEPER -T -dim 2 -domain "square(5,5)" -n "from_morpho" -o "$MODELNAME.tess" -morpho "diameq:lognormal(1,0.42),circularity:lognormal(0.6977,0.0801)" -id $SEED

i get the following error:

Error  :     > Variable `circularity' not found in `-morphooptigrid'.
generate.sh: line 15: 17248 Aborted                 (core dumped) $NEPER -T -dim 2 -domain "square(5,5)" -n "from_morpho" -o "$MODELNAME.tess" -morpho "diameq:lognormal(1,0.42),circularity:lognormal(0.6977,0.0801)" -id $SEED

Swaping out circularity for sphericity works perfectly fine. In addition, in the manual nowhere is specified, which definition of circularity is used. Also it would be nice, how the sphericity is calculated for 2D structures. I would need to analyse my EBSD data that way.
Thank you for you good work,
Thanks!

Option "-datapolyscale " doesn't work

Using the following code:
#!/bin/bash
neper -T -n 5000 -id 1
-domain "cube(0.255,0.271,0.09)"
-morpho voronoi
-statpoly sphericity

neper -V n5000-id1.tess
-datapolycol scal:n5000-id1.stpoly
-datapolyscale 0.000:1.000
-cameracoo 0.9:0.6:0.6 -datapolytrs 0.2
-print img1

But, I found out that the OPTION "-datapolyscale 0.000:1.000" doesn't seem to work.
For example, I used the OPTION "-datapolyscale 0.000:1.000","-datapolyscale 0.500:1.000" or "-datapolyscale 0:100". I got the same results and the same img1.png.
The scale relative to the "-datapolycol scal" data is always setted the default value "data minimum:data maximum", Whatever your input values are.

This OPTION "-datapolyscale ", it works well in Versions 2.0.1 and 2.0.4, but doesn't work in Versions 3.0.0 and later.

morpho options mutually exclusion and generating a specified rotated fibre texture

  1. morpho options mutually exclusion in 'gg' and 'diameq:dirac(0.1'
    I tried the -T options like"$NEPER -T -n 240 -domain "cube(1.0,1.0,1.0)" -morpho "gg,diameq:dirac(0.1)" -reg 1 -ori random -o n240". The result grain size distribution seem more uniform than use "-morpho "diameq:dirac(0.1), sphericity(0.145,0.03,1-x)" " or " -morpho "gg" -reg 1" only.
    ‘gg’ and ‘diameq:dirac(0.1)’ can play a certain role in morpho controlling, but the mechanism is not clear.
  2. A fibre texture can be defined using -ori 'fibre('z',0,0,1)', or 'e(0,40,0) for rotation. If a intermediate rotation operation following the initial texture configuration 'fibre('z',0,0,1)', executing 'fibre('z',0,0,1),e(0,40,0)' will prove that these two options are mutually exclusion. Only the first options fibre() or e() will be active. But if a intermediate roation configuration set as a target, is it possible for Neper to generate?

Nine-noded quadrilateral (Q9) element

In my interests, the plane nine-noded quadrilateral (Q9) element usually used for incompressible hyperelastic materials using Voronoi tessellation. I wonder if you could add the quad element in the second-order finite element library.

Generating periodic boundary conditions for Tetrahedral elements in a unit cell

Hello,

I am generating a tessellation of 50 elements unit cell using the following command:

neper -T -n 50 -domain "cube(1,1,1)" -oricrysym cubic -ori uniform -o 50grains -oridescriptor e -regularization 1 -oriformat geof

I then mesh the tessellation using the command:

neper -M 50grains.tess -elttype tet -order 1 -meshqualmin 1.0 -rcl 1 -o 50grains_tet -format geof

which gives me a mesh with tetrahedral elements as shown in the attachment. I am now trying to generate Periodic Boundary conditions on this unit cell by using periodic vectors. I tried using the vectors (1,0,0), (0,1,0) & (0,0,1) but was not able to make the unit cell periodic. If anyone tried anything similar, can you kindly share your suggestions ?

Capture2

Thank you

Option -scale is not multiscale.

In -T, option -scale only applies to the first scale. It should be made multiscale so that grain elongation can be controlled at all scales.

Using statistics to determine the morphology of 2D structures

Hello,
im trying to use some statistics, i extraced from EBSD Analysis, to create 2D synthetic structures. For better understanding i tried to use some examples from the documentation. In the description it says that -morpho 'gg' is equal to the term - morpho ‘diameq:lognormal(1,0.35),1-sphericity:lognormal(0.145,0.03)’. According to my understanding, the same seed should produce the same results, which is not the case. Do I have a wrong understanding, or is it a bug? For reference, this is the full command im using:
neper -T -dim 2 -domain "square(1,1)" -n 100 -o "Micro_2D"
-morpho 'gg' -id 10

and

neper -T -dim 2 -domain "square(1,1)" -n 100 -o "Micro_2D"
-morpho ‘diameq:lognormal(1,0.35),1-sphericity:lognormal(0.145,0.03)’ -id 10

glad if i get some help

Extra specifications needed for local install of neper

I found that I add to add the following lines within the top-level CMakeLists.txt file in order to get things to build when I had to use a local install of NLOPT and neper due to a lack of admin/sudo access on this machine.

if (HAVE_NLOPT)                                     # NLOPT
  find_package(NLOPT REQUIRED)                      # NLOPT
  set (EXTRA_LIBS ${EXTRA_LIBS} ${NLOPT_LIBRARIES}) # NLOPT
  include_directories (${NLOPT_INCLUDE_DIRS})       # NLOPT
endif ()

I also had to specify the following flags: -DNLOPT_LIBRARY and -DNLOPT_INCLUDE_DIR on the command line when I first ran cmake in order to point everything in the right directions.

Incorrect *.per file for -order 2

Running:

neper -T -n 10 -morpho graingrowth -periodicity all -ori 3D -oricrysym cubic
neper -M -order 1 -format vtk n10-id1.tess

compared to

neper -M -order 2 -format vtk n10-id1.tess

yields exactly the same n10-id1.per file. So the -order 2 run isn't picking up the (periodic) midside nodes.

This is running with the latest devel branch from the repository.

Issue with flattening in 2D tesselation

Hi Romain,
The following steps prompt a SIGABRT() in the flattening process.

neper -T -dim 2 -domain "square(1024,1024)" -n from_morpho -id 1 -morpho "diameq:0.3*lognormal(70,25,from=1)+0.7*lognormal(70,25,from=1),1-sphericity:lognormal(0.145,0.03),aspratio(586,1,1)" -tesrsize "2048,2048" -statcell modeid -o 2DScale1 -for vtk,tess,tesr

awk '{if ($1==1) {print NR,"diameq:lognormal(2.624,1.29,from=0.5),diameq:interval(0.5,5),1-sphericity:lognormal(0.145,0.03)"} else {print NR,"diameq:lognormal(2.4,1.49,from=0.5),diameq:interval(0.5,5),1-sphericity:lognormal(0.145,0.03)"}}' 2DScale1.stcell > scale2-morpho

neper -T -dim 2 -domain "square(1024,1024)" -n from_morpho::from_morpho -morpho "diameq:0.3*lognormal(70,25,from=1)+0.7*lognormal(70,25,from=1),1-sphericity:lognormal(0.145,0.03),aspratio(586,1,1)::file(scale2-morpho)" -morphooptialgo "subplex::subplex" -morphooptistop "val=1.5::val=0.01" -tesrsize 2048:2048 -o scale2 -tesrformat "ascii" -format tess,tesr,vtk -statcell ncells_samedomain

backtrace of dgb of the core file gives me:

#0  0x00002b6e5e537214 in raise () from /cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6
#1  0x00002b6e5e53867a in abort () from /cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6
#2  0x0000000000549e05 in neut_tess_domedge_edges_sorted ()
#3  0x000000000048a00a in net_mtess_flatten_edge_domedge_edges ()
#4  0x000000000048912f in net_mtess_flatten_edge_domedge ()
#5  0x00000000004889d4 in net_mtess_flatten_edge ()
#6  0x0000000000487fe3 in net_mtess_flatten ()
#7  0x0000000000487add in net_flatten ()
#8  0x000000000046077c in neper_t ()
#9  0x0000000000439f6b in main ()

Please let me know if there is a quick fix for this.
Thanks,
Ali

outputting problem when domain dim set to 2

Hello there;
Here is an example:

neper -T -dim 2 -id 1 -domain "square(64,64)" -n from_morpho -morpho "diameq:lognormal(4.29,4),1-sphericity:lognormal(0.145,0.03)" -tesrsize 256:256 -statcell modeid -o scale1 -format tess,tesr,vtk

it doesn't produce a *.tesr file. it doesn't produce a *.vtk file. the stcell file is also empty.
3D version is fine.

Regards,
Ali

Periodic Tesselations with Flat Surfaces

To create a tesselation/mesh such that the resulting structure is still a square/cube with flat surface but has periodicity. To elaborate, the +z face of the cube it would be exactly the same as the -z face, and for all the sides etc.
Resulting cube would have tesselations periodic across all faces.

split option fails for 2d graingrowth mode

Hi Romain,
I try to use the following command to generate a 1/4 circle domain with multiple grains.

neper -T -n 50 -dim 2 -morpho gg -domain "circle(10):split(x):split(y)"

however, it gives me such error:

Info   : A software package for polycrystal generation and meshing.
Info   : Version 3.5.1
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt
Info   : Running on 8 threads.
Info   : <http://neper.info>
Info   : Copyright (C) 2003-2019, and GNU GPL'd, by Romain Quey.
Info   : No initialization file found (`/home/by/.neperrc').
Info   : ---------------------------------------------------------------
Info   : MODULE  -T loaded with arguments:
Info   : [ini file] (none)
Info   : [com line] -n 50 -dim 2 -morpho gg -domain
         circle(10):split(x):split(y)
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   : Creating domain...
Info   : Creating tessellation...
Info   :   - Setting seeds... 100%
Info   :   - Generating crystal orientations...
Info   :   - Running tessellation...
Info   :     >  Aborted (core dumped)

If I remove the -morpho gg option, everything works fine.

So what could be the reason for this?

commit a4b7472 introduced an error in the .bcs file

In commit a4b7472, an error has been introduced related with the .bcs file (file with boundary nodes).

I am running the following commands in both commit 53486ee and a4b7472:

Tesselation:
neper --rcfile none -T -n 200 -id 10 -dim 2 -morpho graingrowth -ori uniform -oricrysym cubic -regularization 1 -mloop 100 -o 1-phase_200-grain_tri6_10-seed -format tess,ori,geo -oridescriptor e -statcell modeid,area
Meshing:
neper --rcfile none -M -tmp /run/user/1000 1-phase_200-grain_tri6_10-seed.tess -elttype tri -rcl 1.5 -dim 2 -order 2 -format msh,fepx -nset edges,vertices -statelt area

.bcs file output:
commit 53486ee:

352
118 y0
(...)
9948 y0
34 x1
(...)
9640 x1
62 y1
(...)
9656 y1
133 x0
(...)
9658 x0
312 x0y0
138 x1y0
183 x1y1
394 x0y1
0

commit a4b7472:

4
312 x0y0
138 x1y0
183 x1y1
394 x0y1
0

(only the vertices are written)

Quadratic interface cohesive elements

When using the -interface cohesive option in the meshing module with -order 1 triangular elements, everything seems to work just fine. The problem is when quadratic elements are required..

Using -interface cohesive with -order 2 leads to the following message:

image

Could you include the generation of quadratic order cohesive elements, please? (for 2D and 3D simulations, if possible).

log File for debugging option in tessellation module

Hello,
I tried to produce my own tessellation file (.tess) with the documentation provided in the manual (version 3.5.1). I decided to do so because I want have the crystals different than all the options offered by the tessellation module right now. I'm first trying to do this in 2D. I managed to produce a file which seems to look like a proper .tess file, like it would be produced by the tessellation module. Now I tried to check this file with the debugging option provided in the tessellation module (-T) (like this: neper -T -checktess name.tess). The checking process is working for files produced by neper, so the process itself shouldn't be the problem. Now when I'm trying to check my self produced file I get the following error:

======================== N e p e r =======================
Info : A software package for polycrystal generation and meshing.
Info : Version 3.5.1
Info : Built with: gsl|muparser|opengjk|openmp|nlopt
Info : Running on 1 threads.
Info : http://neper.info
Info : Copyright (C) 2003-2019, and GNU GPL'd, by Romain Quey.
Info : No initialization file found (`/home/user12/.neperrc').

Info : ---------------------------------------------------------------
Info : MODULE -T loaded with arguments:
Info : [ini file] (none)
Info : [com line] -checktess name.tess
Info : ---------------------------------------------------------------
Info : Reading input data...
Info : Checking tessellation...
Info : [i] Parsing file `name.tess'...
Aborted (core dumped)

So obviously my file is not yet working and I think the problem is somewhere in what I generated. My question is, if there is somewhere some kind of a log file where the possible error is described in more detail, to help me finding it.
As I'm also having non-convex (concave) crystals, I'm wondering if this could be a general problem. This is also the reason why I tried to create this file seperatly from the tessellation module, to be able to have concave crystals.
I know that therefor it might not be possible to use neper for meshing or other functions, but I was hoping to be at least able to visualize using the (-V) module.
In case this is helping someone I attached my current file (I had to rename it from .tess to .txt to upload it here, so don't wonder).

name.txt

Edit:
I generated a file with fully convex crystals and still the same error. So I think my mistake is still somewhere else.

concave.txt

Edit:
I read the manual once more and carefully and right in the first sentences of the tessellation module description it says only the domain has to be convex, which is the case here.

Option -scale didn't work well with option -periodicity

In module -T , using option
-periodicity 1 -scale 2:1:1
the result tessellation seems "duplicate" in x direction in stead of elongate in x direction.

when use -scale 2:1:1 without periodicity condition in x direction , it did elongate the tessellation in x direction.

ctest 76 - T_statface error

Hello Romain,
I'm a programmer, but not a linux pro user, so I could have done something wrong.

I still didn't try neper itself, but after installing it and running ctest the output shows the following:

        Start  76: T_statface
*** Error in `/home/fausto/Scaricati/neper-3.5.2/src/build/neper': double free or corruption (out): 0x09896b20 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xb7844377]
/lib/i386-linux-gnu/libc.so.6(+0x6d2f7)[0xb784a2f7]
/lib/i386-linux-gnu/libc.so.6(+0x6dc31)[0xb784ac31]
/home/fausto/Scaricati/neper-3.5.2/src/build/neper(ut_free_1d_char+0xf)[0x807c8cf]
/home/fausto/Scaricati/neper-3.5.2/src/build/neper(neut_tess_var_val+0x66c)[0x818455c]
/home/fausto/Scaricati/neper-3.5.2/src/build/neper(net_stat_tess+0x1ad)[0x80bf1cd]
/home/fausto/Scaricati/neper-3.5.2/src/build/neper(net_stat+0x358)[0x80bee48]
/home/fausto/Scaricati/neper-3.5.2/src/build/neper(neper_t+0x3d4)[0x8090394]
/home/fausto/Scaricati/neper-3.5.2/src/build/neper(main+0x317)[0x80773e7]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0xb77f5637]
/home/fausto/Scaricati/neper-3.5.2/src/build/neper[0x8077769]
======= Memory map: ========
08048000-0828b000 r-xp 00000000 08:06 139753     /home/fausto/Scaricati/neper-3.5.2/src/build/neper
0828b000-0828c000 r--p 00242000 08:06 139753     /home/fausto/Scaricati/neper-3.5.2/src/build/neper
0828c000-08290000 rw-p 00243000 08:06 139753     /home/fausto/Scaricati/neper-3.5.2/src/build/neper
09880000-098a1000 rw-p 00000000 00:00 0          [heap]
b7600000-b7621000 rw-p 00000000 00:00 0 
b7621000-b7700000 ---p 00000000 00:00 0 
b77d3000-b77d7000 rw-p 00000000 00:00 0 
b77d7000-b77da000 r-xp 00000000 08:01 263052     /lib/i386-linux-gnu/libdl-2.23.so
b77da000-b77db000 r--p 00002000 08:01 263052     /lib/i386-linux-gnu/libdl-2.23.so
b77db000-b77dc000 rw-p 00003000 08:01 263052     /lib/i386-linux-gnu/libdl-2.23.so
b77dc000-b77dd000 rw-p 00000000 00:00 0 
b77dd000-b798d000 r-xp 00000000 08:01 263028     /lib/i386-linux-gnu/libc-2.23.so
b798d000-b798f000 r--p 001af000 08:01 263028     /lib/i386-linux-gnu/libc-2.23.so
b798f000-b7990000 rw-p 001b1000 08:01 263028     /lib/i386-linux-gnu/libc-2.23.so
b7990000-b7993000 rw-p 00000000 00:00 0 
b7993000-b79ac000 r-xp 00000000 08:01 263172     /lib/i386-linux-gnu/libpthread-2.23.so
b79ac000-b79ad000 r--p 00018000 08:01 263172     /lib/i386-linux-gnu/libpthread-2.23.so
b79ad000-b79ae000 rw-p 00019000 08:01 263172     /lib/i386-linux-gnu/libpthread-2.23.so
b79ae000-b79b0000 rw-p 00000000 00:00 0 
b79b0000-b79cc000 r-xp 00000000 08:01 263066     /lib/i386-linux-gnu/libgcc_s.so.1
b79cc000-b79cd000 rw-p 0001b000 08:01 263066     /lib/i386-linux-gnu/libgcc_s.so.1
b79cd000-b79ef000 r-xp 00000000 08:01 525345     /usr/lib/i386-linux-gnu/libgomp.so.1.0.0
b79ef000-b79f0000 r--p 00021000 08:01 525345     /usr/lib/i386-linux-gnu/libgomp.so.1.0.0
b79f0000-b79f1000 rw-p 00022000 08:01 525345     /usr/lib/i386-linux-gnu/libgomp.so.1.0.0
b79f1000-b7b5e000 r-xp 00000000 08:01 523467     /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
b7b5e000-b7b5f000 ---p 0016d000 08:01 523467     /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
b7b5f000-b7b64000 r--p 0016d000 08:01 523467     /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
b7b64000-b7b65000 rw-p 00172000 08:01 523467     /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
b7b65000-b7b69000 rw-p 00000000 00:00 0 
b7b69000-b7bbc000 r-xp 00000000 08:01 263098     /lib/i386-linux-gnu/libm-2.23.so
b7bbc000-b7bbd000 r--p 00052000 08:01 263098     /lib/i386-linux-gnu/libm-2.23.so
b7bbd000-b7bbe000 rw-p 00053000 08:01 263098     /lib/i386-linux-gnu/libm-2.23.so
b7bd7000-b7bd8000 rw-p 00000000 00:00 0 
b7bd8000-b7c5c000 r-xp 00000000 08:01 438480     /usr/local/lib/libnlopt.so.0.10.0
b7c5c000-b7c5d000 ---p 00084000 08:01 438480     /usr/local/lib/libnlopt.so.0.10.0
b7c5d000-b7c5e000 r--p 00084000 08:01 438480     /usr/local/lib/libnlopt.so.0.10.0
b7c5e000-b7c5f000 rw-p 00085000 08:01 438480     /usr/local/lib/libnlopt.so.0.10.0
b7c5f000-b7c9b000 r-xp 00000000 08:01 438329     /usr/local/lib/libgslcblas.so.0.0.0
b7c9b000-b7c9c000 r--p 0003b000 08:01 438329     /usr/local/lib/libgslcblas.so.0.0.0
b7c9c000-b7c9d000 rw-p 0003c000 08:01 438329     /usr/local/lib/libgslcblas.so.0.0.0
b7c9d000-b7f86000 r-xp 00000000 08:01 438456     /usr/local/lib/libgsl.so.25.0.0
b7f86000-b7f87000 ---p 002e9000 08:01 438456     /usr/local/lib/libgsl.so.25.0.0
b7f87000-b7f89000 r--p 002e9000 08:01 438456     /usr/local/lib/libgsl.so.25.0.0
b7f89000-b7f97000 rw-p 002eb000 08:01 438456     /usr/local/lib/libgsl.so.25.0.0
b7f97000-b7f99000 rw-p 00000000 00:00 0 
b7f99000-b7f9c000 r--p 00000000 00:00 0          [vvar]
b7f9c000-b7f9e000 r-xp 00000000 00:00 0          [vdso]
b7f9e000-b7fc1000 r-xp 00000000 08:01 263000     /lib/i386-linux-gnu/ld-2.23.so
b7fc1000-b7fc2000 r--p 00022000 08:01 263000     /lib/i386-linux-gnu/ld-2.23.so
b7fc2000-b7fc3000 rw-p 00023000 08:01 263000     /lib/i386-linux-gnu/ld-2.23.so
bf9ea000-bfa0b000 rw-p 00000000 00:00 0          [stack]
 76/283 Test  #76: T_statface .......................***Exception: Other  2.04 sec

[...]

99% tests passed, 1 tests failed out of 283

Total Test time (real) = 1034.54 sec

The following tests FAILED:
	 76 - T_statface (OTHER_FAULT)
Errors while running CTest

Do you think I can try the program anyway?
Thanks in advance.
I hope it will be helpful.
Best regards
Fausto

2D Meshing causing timeout/hangs

Hi Romain,

Attempting to install Neper on our cluster. I believe I have all dependencies installed albeit in non-standard locations, but unfortunately when running 'make test' it fails/hangs on test 116.

Times out after approx 1500 secs

Can replicate the issue by running the following command

$ neper --rcfile none -M n2-id1.tess -mesh3dclreps 1

========================    N   e   p   e   r    =======================
Info   : A software package for polycrystal generation and meshing.
Info   : Version 3.5.1
Info   : Built with: gsl|muparser|opengjk|openmp|nlopt
Info   : Running on 28 threads.
Info   : <http://neper.info>
Info   : Copyright (C) 2003-2019, and GNU GPL'd, by Romain Quey.
Info   : Ignoring initialization file.
Info   : ---------------------------------------------------------------
Info   : MODULE  -M loaded with arguments:
Info   : [ini file] (none)
Info   : [com line] n2-id1.tess -mesh3dclreps 1
Info   : ---------------------------------------------------------------
Info   : Reading input data...
Info   :   - Reading arguments...
Info   : Loading input data...
Info   :   - Loading tessellation...
Info   :     [i] Parsing file `n2-id1.tess'...
Info   :     [i] Parsed file `n2-id1.tess'.
Info   : Meshing...
Info   :   - Preparing... (cl = 0.3969) 100%
Info   :   - 0D meshing... 100%
Info   :   - 1D meshing... 100%
Info   :   - 2D meshing...   0% (0|0/ 0%| 0%| 0%)`

Just hangs there indefinitely

As far as I can tell gmsh is configured correctly

$ neper -T -n 2 -id 1 -format geo
$ gmsh -3 n2-id1.geo
Info    : Running 'gmsh -3 n2-id1.geo' [Gmsh 4.5.3, 1 node, max. 1 thread]
Info    : Started on Fri Feb 28 15:28:22 2020
Info    : Reading 'n2-id1.geo'...
Info    : Done reading 'n2-id1.geo'
Info    : Meshing 1D...
Info    : [  0 %] Meshing curve 1 (Line)
Info    : [ 10 %] Meshing curve 2 (Line)
Info    : [ 10 %] Meshing curve 3 (Line)
Info    : [ 20 %] Meshing curve 4 (Line)

....omitted for clarity

Info    : Meshing 2D...
Info    : [  0 %] Meshing surface 1 (Plane, Frontal)
Info    : [ 10 %] Meshing surface 2 (Plane, Frontal)
Info    : [ 20 %] Meshing surface 3 (Plane, Frontal)
Info    : [ 30 %] Meshing surface 4 (Plane, Frontal)
Info    : [ 40 %] Meshing surface 5 (Plane, Frontal)
Info    : [ 50 %] Meshing surface 6 (Plane, Frontal)
Info    : [ 50 %] Meshing surface 7 (Plane, Frontal)
Info    : [ 60 %] Meshing surface 8 (Plane, Frontal)
Info    : [ 70 %] Meshing surface 9 (Plane, Frontal)
Info    : [ 80 %] Meshing surface 10 (Plane, Frontal)
Info    : [ 90 %] Meshing surface 11 (Plane, Frontal)
Info    : [100 %] Meshing surface 12 (Plane, Frontal)
Info    : Done meshing 2D (0.020509 s)
Info    : Meshing 3D...

...omitted for clarity.

$ gmsh --version
4.5.3

Any ideas what could be causing the 2D Meshing step to hang?

Many Thanks

Chris

Fix regularization of general 2D tessellation

In the case of a 2D tessellation, regularization assumes that the tessellation is in the x-y plane. However, option -transform slice may generate 2D tessellations which are not in the x-y plane. Regularization should therefore be generalized.

Here is the guilty code, net_reg_merge_del3.c line 298:

ut_space_points_line ((*pTess).DomVerCoo[domver1], (*pTess).DomVerCoo[domver2], eqs[i]);                        

regularization for sphere

I am trying to regularization the 3D Voronoi diagram bounded by a sphere using neper -T -n 50 -domain "sphere(500, 50)" -format ply -reg 1, it through an error saying there is a bug.

Cohesive element insertion using Neper for Abaqus input file

Insertion of CZ elements for Abaqus output can be achieved using the following option:

-interface cohesive -format inp

It appears that the cohesive element definition obtained using Neper in 3D is not consistent with the one proposed in Abaqus (See ref : http://dsk.ippt.pan.pl/docs/abaqus/v6.13/books/usb/default.htm?startat=pt06ch32s05alm43.html)

Attached, an example of the cohesive element (COH3D6) connectivity required in Abaqus and a possible algorithm to check/correct the connectivity of the CZ elements.

CZ_connectivity_Abaqus.pdf

.bcs file with fepx format is wrong when tri 6 and cohesive elements are used

The new version of second-order cohesive elements is working as expected.
There is only a minor problem in the .bcs file when exporting in fepx format with -order 2 and -interface cohesive. Only the vertices nodes of the tri6 elements are exported.
However, if a mesh is created with -order 2 but without the option -interface cohesive, the .bcs file is correct (both vertices and edge nodes are written).

Example:

without cohesive elements:
NEPER_M="$NEPER"' -M -tmp '"$TMP_DIR"' '"$FILETESS"' -elttype tri '"$CLENGTH"' -dim 2 -order 2 -format msh,fepx -nset edges,vertices -statelt '"$STATELT"
eval $NEPER_M

image

.bcs file: (the node ID in my program is equal to the node ID of gmsh + 1)
...
1 y1
2 y1
7 y1
14 y1
21 y1
...

with cohesive elements:
NEPER_M="$NEPER"' -M -tmp '"$TMP_DIR"' '"$FILETESS"' -elttype tri '"$CLENGTH"' -dim 2 -order 2 -format msh,fepx -nset edges,vertices -statelt '"$STATELT"' -interface cohesive'
eval $NEPER_M

image

.bcs file: (the node ID in my program is equal to the node ID of gmsh + 1)
...
1 y1
2 y1
7 y1
...
(16 y1 and 23 y1 is missing in this file)

This occurs for the other edges too. The first number in the .bcs file (number of nodes) is also wrong.

Interface option: cohesive elements for quad and quad9

I wonder if you could add the cohesive interface options for the "quad" and "quad9" which correspond to 2-D elements. Also, I need msh, inp, and vtk formats of the output files. Thank you for your unconditional support.

Slice on periodic tesselations

Hi Romain and thanks for this software.
I try to slice a periodic tessellation, but the transform step fails, leading to the infamous "core dumped" error. E.g. try:

neper -T -n 10 -periodicity x -transform "slice(1,1,0,0)"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.