Before You Start: Known Bugs in ParaDiS: Difference between revisions

From Micro and Nano Mechanics Group
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
This page lists the current known bugs in the different ParaDiS public releases.
== Bug 1. Serial mode in v2.0 ==


== General bugs ==
If you download the standard distribution of ParaDiS <tt>pub-dd3d.v2.0.tar.gz</tt>, you will not be able to compile and run it in SERIAL mode. The fix to this problem is described below.


=== Bug 1. Cell ownership ===
You need to download these three files (available on [http://paradis.stanford.edu/downloads ParaDiS download site]):

makefile.sys
makefile.setup
ReadConfig.c

This will allow you to use <tt>SYS = i386</tt> or <tt>SYS = cygwin</tt> and <tt>MODE = SERIAL</tt> in <tt>makefile.setup</tt>.

The <tt>SYS = i386</tt> option requires intel compiler <tt>icc</tt>. If you do not have this compiler, you can modify the <tt>makefile.sys</tt> file to use a different compiler.

We are working to enable the <tt>SYS = mac</tt> option. Please come back soon.

If your computer does not allow opening of X-window, then you need to set <tt>enable_window = 0</tt> in your <tt>win.script</tt> file. This is also necessary if you submit your job to a queue in a cluster, because you won't be able to open an interactive window there.

== Bug 2. Cell ownership ==
As the numbers of
As the numbers of
cells and numbers of processors are changed, ownership or nodes/segments can
cells and numbers of processors are changed, ownership or nodes/segments can
Line 23: Line 9:
are accounted... and hence alter results. So for a small test case, forces may be perfectly correct in serial but slightly off in parallel using cells (option FULL_N2Forces turned off).
are accounted... and hence alter results. So for a small test case, forces may be perfectly correct in serial but slightly off in parallel using cells (option FULL_N2Forces turned off).


On a large simulation the
On a large simulation the results should be insignificant, but on small simulations with very few
results should be insignificant, but on small simulations with very few
dislocations, differences are more noticable.
dislocations, differences are more noticable.


== Bug 3. Gcc with v2.3.5 ==
=== Bug 2. Segfault with X-window ===
Segmentation fault occurs with v2.3.5s and v.2.3.5.1 when compiling with GCC on Ubuntu and running codes with FMM. The error when compiling using <tt>-03</tt> optimization in serial or parallel (<tt>cc -O3</tt> or <tt>mpicc -03</tt>). Appears to be specific to <tt>-03</tt> and doesn't occur for <tt>-02</tt> or <tt>-g</tt>, for example. <tt>-03</tt> works properly when using Rijm tables.

This doesn't occur with the older version of ParaDiS in the subversion (~2.2.3 or 2.2.6?).

Details of error:
<blockquote style="background: white; border: 0; padding: rem; width: 625px;"><pre>
Initialize: Control file parsing complete
Generating uniform domain decomposition.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff732896d in ?? () from /lib/libc.so.6
(gdb) backtrace
#0 0x00007ffff732896d in ?? () from /lib/libc.so.6
#1 0x00007ffff732b424 in calloc () from /lib/libc.so.6
#2 0x0000000000448911 in ReadNodeDataFile ()
#3 0x000000000042dcd4 in Initialize ()
#4 0x000000000040e321 in ParadisInit ()
#5 0x000000000040185a in main ()
</pre></blockquote>

== Bug 4. Segfault with X-window ==
Not really a bug, but a suggestion. When an X-window cannot be opened sucessfully the code exits with a segmentation fault. Should be able to add a descriptive message and a break instead.
Not really a bug, but a suggestion. When an X-window cannot be opened sucessfully the code exits with a segmentation fault. Should be able to add a descriptive message and a break instead.


== Bug 5. Input files created in DOS system ==
=== Bug 3. Input files created in DOS system ===
When ParaDiS input files (control and data files) are created in a DOS system (MS-DOS or Windows), the input files sometimes cannot be executed even though the files look okay in your editor of your linux system. For example, when you create input files using 'create_dislocation.f' in your DOS (or Windows) system, the hidden character, which is ^M, is embedded at the end of each line in your files. This character is sometimes shown or not shown in your editor. If it is shown, the input files look as the following.
When ParaDiS input files (control and data files) are created in a DOS system (MS-DOS or Windows), the input files sometimes cannot be executed even though the files look okay in your editor of your linux system. For example, when you create input files using 'create_dislocation.f' in your DOS (or Windows) system, the hidden character, which is ^M, is embedded at the end of each line in your files. This character is sometimes shown or not shown in your editor. If it is shown, the input files look as the following.


Line 87: Line 51:
We can remove this hidden character ^Ms simply using the command "<tt>dos2unix</tt>". This command erase all ^Ms in your files. Just run <tt>dos2unix (your-input-file-name)</tt>, Then, the input files can be executed.
We can remove this hidden character ^Ms simply using the command "<tt>dos2unix</tt>". This command erase all ^Ms in your files. Just run <tt>dos2unix (your-input-file-name)</tt>, Then, the input files can be executed.


=== Bug 4. White space in makefile.setup ===

== Bug 6. makefile.setup ==


Make sure there is no white space after your specification of the 'SYS' variable, e.g.
Make sure there is no white space after your specification of the 'SYS' variable, e.g.
Line 95: Line 58:


If there is a white space following gcc then the code won't compile.
If there is a white space following gcc then the code won't compile.

== ParaDiS v2.5.1 ==

=== Bug 1. FCC_0 Mobility law with useLabFrame ===

A bug in ParaDiS v2.5.1 is known to prevent dislocation motion when the mobility <tt>FCC_0</tt> is used and the crystal is rotated using option <tt>useLabFrame = 1</tt> (Note: there is no bug when the crystal is not rotated).

To fix this bug, lines 111-112 in file <tt>src/MobilityLaw_FCC_0.c</tt>

<pre>
if ( (fabs(fabs(node->nx[i]) - fabs(node->ny[i])) > FFACTOR_NORMAL) ||
(fabs(fabs(node->ny[i]) - fabs(node->nz[i])) > FFACTOR_NORMAL) )
</pre>

need to be replaced by the following lines:

<pre>
if ( (fabs(fabs(normX[i]) - fabs(normY[i])) > FFACTOR_NORMAL) ||
(fabs(fabs(normY[i]) - fabs(normZ[i])) > FFACTOR_NORMAL) )
</pre>

=== Bug 2. Cross-slip in FCC ===

A bug in ParaDiS v2.5.1 affects the cross-slip procedure in FCC crystals when cross-slip is enabled (default). The bug arises from the fact that the <tt>shearModulus</tt> parameter controlling the threshold for noise level is not initialized within the <tt>CrossSlipFCC</tt> function.

To fix this bug, the following line must be added after line 78 in file <tt>src/CrossSlipFCC.c</tt>

<pre>
shearModulus = param->shearModulus;
</pre>

Once corrected, lines 74-79 in file <tt>src/CrossSlipFCC.c</tt> should look like

<pre>
eps = 1.0e-06;
thetacrit = 2.0 / 180.0 * M_PI;
sthetacrit = sin(thetacrit);
s2thetacrit = sthetacrit * sthetacrit;
areamin = param->remeshAreaMin;
shearModulus = param->shearModulus;
</pre>

== ParaDiS v2.3.5 ==

=== Bug 1. Gcc with v2.3.5 ===
Segmentation fault occurs with v2.3.5s and v.2.3.5.1 when compiling with GCC on Ubuntu and running codes with FMM. The error when compiling using <tt>-03</tt> optimization in serial or parallel (<tt>cc -O3</tt> or <tt>mpicc -03</tt>). Appears to be specific to <tt>-03</tt> and doesn't occur for <tt>-02</tt> or <tt>-g</tt>, for example. <tt>-03</tt> works properly when using Rijm tables.

This doesn't occur with the older version of ParaDiS in the subversion (~2.2.3 or 2.2.6?).

Details of error:
<blockquote style="background: white; border: 0; padding: rem; width: 625px;"><pre>
Initialize: Control file parsing complete
Generating uniform domain decomposition.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff732896d in ?? () from /lib/libc.so.6
(gdb) backtrace
#0 0x00007ffff732896d in ?? () from /lib/libc.so.6
#1 0x00007ffff732b424 in calloc () from /lib/libc.so.6
#2 0x0000000000448911 in ReadNodeDataFile ()
#3 0x000000000042dcd4 in Initialize ()
#4 0x000000000040e321 in ParadisInit ()
#5 0x000000000040185a in main ()
</pre></blockquote>


== ParaDiS v2.0 ==

=== Bug 1. Serial mode in v2.0 ===

If you download the standard distribution of ParaDiS <tt>pub-dd3d.v2.0.tar.gz</tt>, you will not be able to compile and run it in SERIAL mode. The fix to this problem is described below.

You need to download these three files (available on [http://paradis.stanford.edu/downloads ParaDiS download site]):

makefile.sys
makefile.setup
ReadConfig.c

This will allow you to use <tt>SYS = i386</tt> or <tt>SYS = cygwin</tt> and <tt>MODE = SERIAL</tt> in <tt>makefile.setup</tt>.

The <tt>SYS = i386</tt> option requires intel compiler <tt>icc</tt>. If you do not have this compiler, you can modify the <tt>makefile.sys</tt> file to use a different compiler.

We are working to enable the <tt>SYS = mac</tt> option. Please come back soon.

If your computer does not allow opening of X-window, then you need to set <tt>enable_window = 0</tt> in your <tt>win.script</tt> file. This is also necessary if you submit your job to a queue in a cluster, because you won't be able to open an interactive window there.

Latest revision as of 23:03, 27 April 2017

This page lists the current known bugs in the different ParaDiS public releases.

General bugs

Bug 1. Cell ownership

As the numbers of cells and numbers of processors are changed, ownership or nodes/segments can alter which may result in segments changing the cells into which they are accounted... and hence alter results. So for a small test case, forces may be perfectly correct in serial but slightly off in parallel using cells (option FULL_N2Forces turned off).

On a large simulation the results should be insignificant, but on small simulations with very few dislocations, differences are more noticable.

Bug 2. Segfault with X-window

Not really a bug, but a suggestion. When an X-window cannot be opened sucessfully the code exits with a segmentation fault. Should be able to add a descriptive message and a break instead.

Bug 3. Input files created in DOS system

When ParaDiS input files (control and data files) are created in a DOS system (MS-DOS or Windows), the input files sometimes cannot be executed even though the files look okay in your editor of your linux system. For example, when you create input files using 'create_dislocation.f' in your DOS (or Windows) system, the hidden character, which is ^M, is embedded at the end of each line in your files. This character is sometimes shown or not shown in your editor. If it is shown, the input files look as the following.

### ParaDis nodal file (create_dislocation.f)^M
### S.A. (10/29/07)###^M
^M
#File version number^M
2^M
^M
#Number of data file segments^M
1^M
#Minimum coordinate values (x, y, z)^M
  -18348.6238532110       -18348.6238532110       -18348.6238532110^M     
#Maximum coordinate values (x, y, z)^M
   18348.6238532110        18348.6238532110        18348.6238532110^M     
^M
#Node count^M
          54^M
#Domain geometry (x, y, z)^M
1 1 1^M
...
...

When the character ^M is not shown, it is frustrating because the input files look perfect, ParaDiS canot execute these inputs with ^Ms and shows the errors such as

...
Error: Expected '=' in parameter assignment 
Fatal: Error obtaining values for parameter ) is produced.
...

We can remove this hidden character ^Ms simply using the command "dos2unix". This command erase all ^Ms in your files. Just run dos2unix (your-input-file-name), Then, the input files can be executed.

Bug 4. White space in makefile.setup

Make sure there is no white space after your specification of the 'SYS' variable, e.g.

SYS = gcc

If there is a white space following gcc then the code won't compile.

ParaDiS v2.5.1

Bug 1. FCC_0 Mobility law with useLabFrame

A bug in ParaDiS v2.5.1 is known to prevent dislocation motion when the mobility FCC_0 is used and the crystal is rotated using option useLabFrame = 1 (Note: there is no bug when the crystal is not rotated).

To fix this bug, lines 111-112 in file src/MobilityLaw_FCC_0.c

if ( (fabs(fabs(node->nx[i]) - fabs(node->ny[i])) > FFACTOR_NORMAL) ||
     (fabs(fabs(node->ny[i]) - fabs(node->nz[i])) > FFACTOR_NORMAL) )

need to be replaced by the following lines:

if ( (fabs(fabs(normX[i]) - fabs(normY[i])) > FFACTOR_NORMAL) ||
     (fabs(fabs(normY[i]) - fabs(normZ[i])) > FFACTOR_NORMAL) )

Bug 2. Cross-slip in FCC

A bug in ParaDiS v2.5.1 affects the cross-slip procedure in FCC crystals when cross-slip is enabled (default). The bug arises from the fact that the shearModulus parameter controlling the threshold for noise level is not initialized within the CrossSlipFCC function.

To fix this bug, the following line must be added after line 78 in file src/CrossSlipFCC.c

shearModulus = param->shearModulus;

Once corrected, lines 74-79 in file src/CrossSlipFCC.c should look like

eps = 1.0e-06;
thetacrit = 2.0 / 180.0 * M_PI;
sthetacrit = sin(thetacrit);
s2thetacrit = sthetacrit * sthetacrit;
areamin = param->remeshAreaMin;
shearModulus = param->shearModulus;

ParaDiS v2.3.5

Bug 1. Gcc with v2.3.5

Segmentation fault occurs with v2.3.5s and v.2.3.5.1 when compiling with GCC on Ubuntu and running codes with FMM. The error when compiling using -03 optimization in serial or parallel (cc -O3 or mpicc -03). Appears to be specific to -03 and doesn't occur for -02 or -g, for example. -03 works properly when using Rijm tables.

This doesn't occur with the older version of ParaDiS in the subversion (~2.2.3 or 2.2.6?).

Details of error:

Initialize: Control file parsing complete
Generating uniform domain decomposition.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff732896d in ?? () from /lib/libc.so.6
(gdb) backtrace
#0  0x00007ffff732896d in ?? () from /lib/libc.so.6
#1  0x00007ffff732b424 in calloc () from /lib/libc.so.6
#2  0x0000000000448911 in ReadNodeDataFile ()
#3  0x000000000042dcd4 in Initialize ()
#4  0x000000000040e321 in ParadisInit ()
#5  0x000000000040185a in main ()


ParaDiS v2.0

Bug 1. Serial mode in v2.0

If you download the standard distribution of ParaDiS pub-dd3d.v2.0.tar.gz, you will not be able to compile and run it in SERIAL mode. The fix to this problem is described below.

You need to download these three files (available on ParaDiS download site):

makefile.sys
makefile.setup
ReadConfig.c

This will allow you to use SYS = i386 or SYS = cygwin and MODE = SERIAL in makefile.setup.

The SYS = i386 option requires intel compiler icc. If you do not have this compiler, you can modify the makefile.sys file to use a different compiler.

We are working to enable the SYS = mac option. Please come back soon.

If your computer does not allow opening of X-window, then you need to set enable_window = 0 in your win.script file. This is also necessary if you submit your job to a queue in a cluster, because you won't be able to open an interactive window there.