Giter Site home page Giter Site logo

teuben / nemo Goto Github PK

View Code? Open in Web Editor NEW
55.0 8.0 40.0 47.65 MB

a Stellar Dynamics Toolbox (Not Everybody Must Observe)

Home Page: https://astronemo.readthedocs.io

License: GNU General Public License v2.0

Shell 3.00% Makefile 2.07% M4 0.24% Roff 1.30% AMPL 0.01% C 51.89% C++ 20.50% Perl 0.35% Fortran 14.47% TeX 3.03% QMake 0.03% Awk 0.01% Python 0.61% Yacc 0.14% Tcl 0.05% Module Management System 0.01% DIGITAL Command Language 0.01% HTML 0.43% PostScript 1.85% Batchfile 0.02%
galactic-astronomy image-analysis orbital-simulation fits-files tabular-data nbody-gravity

nemo's Introduction

A Real Bar

NEMO is a toolbox for stellar dynamics, particle simulations, stellar orbits, image processing and tabular data manipulation. Documentation is maintained in the github pages, https://teuben.github.io/nemo , and a manual in https://astronemo.readthedocs.io

History

This is the 4th major release of NEMO, and although data are compatible with earlier releases, old source code may need to be tweaked a bit to compile and link in the newer releases. Some compatibility with ZENO is also advertised. A brief history of NEMO:

  • NEMO V1: IAS release (Barnes, Hut & Teuben, 1987)
  • NEMO V2: UMD release (Teuben, 1994)
  • NEMO V3: UMD release (Teuben, 2001) in CVS, w/ autoconf, manybody, starlab and partiview
  • NEMO V4: UMD/ESO release (2017) now maintained in github

A related package, ZENO, was spun off NEMO V1, and is maintained by Josh Barnes. Other packages that geneologically came after NEMO are StarLab, ACS and AMUSE (see also https://ascl.net for code references):

 NEMO:      ascl:1010.051
 ZENO:      ascl:1102.027 (normally installed in $NEMO/usr/zeno)
 STARLAB:   ascl:1010.076 (optionally installed in $NEMO/local/starlab)
 ACS:       https://artcompsci.org
 AMUSE:     ascl:1107.007

Optional Packages

Packages we optionally use (sometimes also installed in $NEMO/opt with source code in $NEMO/local):

 PGPLOT:    ascl:1103.002
 CFITSIO:   ascl:1010.001
 WCSLIB:    ascl:1108.003
 glnemo2:   ascl:1110.008
 gyrfalcON: ascl:1402.031 (included with NEMO)
 HDF4
 HDF5       https://www.hdfgroup.org
 netcdf4
 gsl
 plplot
 unsio
 uns_project
 wcstools

Tools you will need to have pre-installed: the C/C++/Fortran compilers, (t)csh, and git. For graphics it's probably useful to have pgplot, but the default ps driver works fine just to get started. We are looking for more portable full graphics, as an alternative to pgplot.

The files in $NEMO/src/scripts/linux describe the actual package names for different linux distros that should lead to success.

Installation

There are a few different ways to install NEMO. We cover an annotated example in this bash notebook And here is a simple example that works most of the time on most Linux (including WSL) distros:

     git clone https://github.com/teuben/nemo
     cd nemo
     ./configure --with-yapp=pgplot
     make build check bench5
     source nemo_start.sh

If you plan to modify code and submit pull requests, the github CLI is recommended, though you can of course also clone the upstream manually (see also CONTRIBUTING.md):

     gh repo fork https://github.com/teuben/nemo

After installation, rebuilding NEMO to ensure you have all updates can be done as follows:

     cd $NEMO
     git pull
     make rebuild

python

There is now a small python component to NEMO, in the nemopy module.

     cd $NEMO
     pip install -e .

but this will depend on the details of how your python environment exists (virtual, conda etc.). We leave this to the user.

Examples

If you want to quickly see something work, here are the commands to make a classic 1911 Plummer sphere of just 10 particles, print the positions, plot the positions and view the contents of its binary file:

     mkplummer p10.dat 10
     snapprint p10.dat
     snapplot p10.dat
     tsf p10.dat

and here is an example of creating the 4 major data objects on the fly in NEMO (table, snapshot, image, orbit), showing off the command line interface and use of Unix pipes, with a dash denoting the piped file:

     tabgen -  | tabplot -
     mkplummer - 100 | snapplot - 
     ccdgen out=- object=gauss spar=1,20 size=128 | ccdplot - 
     mkorbit - 0 1 0  0.4 0 0 potname=plummer | orbint - - nsteps=1000 dt=0.05 | orbplot - 

or graphically showing the pipes through arrows:

   graph LR;
   A[tabgen]-->B[tabplot]

   C[mkplummer]-->D[snapplot]

   E[ccdgen]-->F[ccdplot]
   
   G[mkorbit]-->H[orbint]
   H-->I[orbplot]

There are more examples of scripts and figures in https://teuben.github.io/nemo/examples/ and an example ipython notebook is shown here https://github.com/teuben/nemo/blob/master/nemo_start_example.ipynb for something completely different.

A reproducable example is given in this notebook. To run this from the command line and print the phase space coordinates of the first particle, use this:

  mkplummer - 10 seed=123| snapprint -  | head -1
  ### nemo Debug Info: x y z vx vy vz 
  -0.609486 -0.221687 -0.450963 -0.0766784 -0.209397 0.396561 

Documentation and Help

There are several additional entry points if you are starting out with NEMO:

Citation

Please use the following citation if you use NEMO in your work

 @INPROCEEDINGS{1995ASPC...77..398T,
        author = {{Teuben}, P.},
         title = "{The Stellar Dynamics Toolbox NEMO}",
     booktitle = {Astronomical Data Analysis Software and Systems IV},
          year = 1995,
        editor = {{Shaw}, R.~A. and {Payne}, H.~E. and {Hayes}, J.~J.~E.},
        series = {Astronomical Society of the Pacific Conference Series},
        volume = {77},
         month = jan,
         pages = {398},
        adsurl = {https://ui.adsabs.harvard.edu/abs/1995ASPC...77..398T},
       adsnote = {Provided by the SAO/NASA Astrophysics Data System}
 }

A Real Bar

taken from this example script

nemo's People

Contributors

adrn avatar dchoi98 avatar dhaliwalg avatar jcldc avatar jlammers0 avatar maxtano avatar parkertewell avatar psanth avatar rlzhang1310 avatar shubhambhatnag avatar teuben avatar waltr avatar yzfu0426 avatar

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nemo's Issues

NEMO and ZENO filestructure not 100% same

Both NEMO and ZENO filestructure have made minor modifictions since the 1986 version. There is one important deficiency in NEMO which has not been fixed: multiple same named item are not correctly handled in NEMO. Also some integers that are stored in octal are not transferred properly in a tsf | rsf | tsf pipe test. There may be more.

MacOSX issues

gnu compilers : 4.9.x

  • configure ok.
  • Nemo library seems to be compiled correctly
  • FalcON does compile and run

BUT impossible to create a nemo binary, exemple mknemo tsf cannot compile because compiler complains with message :

ld: unknown option: --no-as-needed
collect2: error: ld returned 1 exit status
make: *** [tsf] Error 1

This bad compilation option comes from file $NEMOLIB/makedefs file...

#  Another option is to add -Wl,--no-as-needed to CFLAGS
#  This is the current default in configure (to use it)
#  Comment the next line if you do not want this, or use --without-dso
NEMO_CFLAGS1 = -Wl,--no-as-needed

gcc-11 issues

The following two have compilation problems:

  falcON tools
  io_nemo

this will be a problem on e.g. Ubuntu 21.04

make install

make install report :

Typically you would do the following: (must be in (t)csh)
./configure .... -- run configure, with lots of options
source nemo_end -- if you have an old NEMO env
source nemo_start -- load the NEMO environment
make postconfig -- basic post configure things
rehash -- update search path
make libs -- install the libraries

this report should be changed to reflect the new changements in V4.0:
source nemo_end
source nemo_start

should be replace by
source nemo_start.sh (if you are running bash)
source nemo_start.csh (if you are running csh)

units.c missing

mknemo units

does not work. It seems to conversion pre-CVS to CVS around 2000 this program never made it into NEMO, yet we use the man page a lot.

hackcode1 segfaults intermittently

hackcode1 now intermittendly segfaults. was already the case on Ubuntu20, persisting on U22.
Slight correction: it's actually a bus error

bad BASH support: nemo_start.sh is too simple

NEMO's nemo_start (or nemo_start.csh) is ok for the csh, but the modern shell is bash and NEMO does not support this very well.

A much deeper question is, if we should consider another model, where source and binaries are decoupled and users don't need to modify their $PATH etc.etc.

configure with pgplot detection now flawed

It should auto-detect pgplot, and if failing, fall back to ps.
If ps or pgplot is set, enforce it. If with-pgplot-prefix=PGPLOT_DIR is set, use that, but fail, if not found.

It seem for both redhat (/usr/share/pgplot) and debian (/usr/lib/pgplot5) the default detections were missing.

We also need defaults for Mac on brew and port.

@ParkerTewell

man -> html partially broken

The "make docs" (in man) is partially broken. The index files are empty. the individual html man pages are ok.
It uses rman (PolyglotMan). V3.2
It works on Ubuntu16, but not 18, not 20. The same version (2003!) of rman is however present on all these systems.

Dehnen's code bugs

Dear Peter Teuben,
Sorry to bother you, but I encountered some errors after upgrading to the new version of nemo.
Specifically, mkgalaxy utilite stopped working.
Error log here:

file tst.err

mkgalaxy error output

disc parameters:
Md = 1 (disc mass)
Nd = 100 (number of disc bodies)
Rd = 1 (disc scale radius)
Rdmax = 4.5 (disc truncation radius)
Zd = 0.05 (disc scale height)
Rsig = 2 (if !=0 : scale radius for sigma_R)
Q = 1.2 (Toomre's Q: constant if Rsig=0, otherwise Q(Rsig))
Nbpo = 50 (number of disc bodies sampled per orbit)
ni = 4 (number of iterations in disc sampling)
epsd = 0.01 (gravitational softening length for disc bodies)
halo parameters:
Mh = 8 (halo mass)
Nh = 400000 (number of halo bodies)
innerh = 1 (halo inner logarithmic density slope)
outerh = 3 (halo outer logarithmic density slope)
etah = 1 (halo transition exponent)
Rcoreh = 0 (halo core radius)
Rh = 6 (halo scale length)
Rth = 100 (halo truncation radius)
betah = 0 (halo anisotropy parameter)
r_ah = 0 (halo anisotropy radius; 0 maps to infinity)
epsh = 0.02 (gravitational softening length for halo bodies)
bulge parameters:
Mb = 0.2 (bulge mass)
Nb = 20 (number of bulge bodies)
innerb = 1 (bulge inner density exponent)
outerb = 4 (bulge outer density exponent)
etab = 1 (bulge transition exponent)
Rcoreb = 0 (bulge core radius)
Rb = 0.2 (bulge scale radius)
Rtb = 0 (bulge truncation radius)
betab = 0 (bulge anisotropy parameter)
r_ab = 0 (bulge anisotropy radius; 0 maps to infinity)
epsb = 0.01 (gravitational softening length for bulge bodies)
parameters controlling code:
kmax = 3 (maximum timestep = 2^-kmax)
kmin = 7 (minimum timestep = 2^-kmin)
fac = 0.01 (time step control: tau < fac/|acc|)
fph = 0.04 (time step control: tau < fph/|phi|)
tgrow = 40 (disc growth time)
seed = 1 (seed for RNGs)
nmax = 12 (maximum n in potential expansion)
lmax = 8 (maximum l in potential expansion)
debug = 2 (debug level used to run all falcON programs)

========================================
mkgalaxy: issuing command:
rm -f tst.h tst.b tst.s tst.prm >& /dev/null

========================================
mkgalaxy: issuing commands:
echo accname=DiscPot > tst.prm
echo accpars=0,37681.3,1,-0.025,0,0 >> tst.prm

========================================
mkgalaxy: issuing command:
mkhalo out=tst.h! nbody=200000 M=8 inner=1 outer=3
eta=1 r_s=6 r_t=100 r_c=0 b=0 r_a=0
seed=1 eps=0.02 giveF=f accname=Halo+Monopole
accpars=0,0.2,0.2,1,4,1,0,0;1,10
accfile=;tst.prm debug=2 >>& tst.err

nemo Debug Info: Keyword file will be mkhalo.def

nemo Debug Info: savehist: progname=mkhalo help_level=0

nemo Debug Info: Found -1 output keywords

nemo Debug Info: set_xrandom(NUMREC portable) seed=1

nemo Debug Info: hasvalue: checking indexing on eps

nemo Debug Info: hasvalue: checking indexing on accname

nemo Debug Info: hasvalue: checking indexing on accpars

nemo Debug Info: hasvalue: checking indexing on accfile

nemo Debug Info: get_acceleration("Halo+Monopole","0,0.2,0.2,1,4,1,0,0;1,10",";tst.prm")

nemo Debug Info: single_acceleration("Halo", "0,0.2,0.2,1,4,1,0,0", "(null)")

nemo Debug Info: MySymbols: NULL code in loadobjDL

nemo Debug Info: loadobj: /home/ssd/opt/nemo_newest/nemo/usr/dehnen/falcON/acc//Halo.so

nemo Debug Info: findfn: looking up iniacceleration

falcON Debug Info [inc/public/halo.h:445]: ModifiedDoublePowerLawHalo: rh0=3.978874

falcON Debug Info [src/public/lib/halo.cc:434]: HaloPotential: minimum & maximum tabulated radii = 0.000390625, 102.4

falcON Debug Info [src/public/acc/Halo.cc:87]: external potential "Halo" recognizes 8 parameters:

omega pattern speed (ignored) [0]
r_s scale radius [1]
m_t total mass [1]
g_i inner power-law slope [7/9]
g_o outer power-law slope [31/9]
eta transition steepness [4/9]
r_t truncation radius (0->oo) [0]
r_c core radius [0]
The halo density proportional to

  Model(x) * sech(r/r_t)

with x=sqrt(r^2+r_c^2)/r_s,
and
-gi eta [gi-go]/eta
Model(x) = x (x + 1).

If file is given, it's interpreted as follows:
Plummer: gi=0, go=5, eta=2
Jaffe: gi=2, go=4, eta=1
Hernquist: gi=1, go=4, eta=1
Dehnen: go=4, eta=1
NFW: gi=1, go=4, eta=1
Moore: gi=3/2, go=3, eta=3/2
DM: gi=7/9, go=31/9, eta=4/9
and differing values are ignored.

falcON Debug Info [src/public/acc/Halo.cc:117]: external potential "Halo" initialized with:

r_s = 0.2
m_t = 0.2
g_i = 1
g_o = 4
eta = 1
r_t = 0
r_c = 0

nemo Debug Info: single_acceleration("Monopole", "1,10", "tst.prm")

nemo Debug Info: loadobj: /home/ssd/opt/nemo_newest/nemo/usr/dehnen/falcON/acc//Monopole.so

nemo Debug Info: findfn: looking up iniacceleration

nemo Debug info: Monopole:

provides the acceleration field due to the potential

Phi_0(x) + A(t) * [Phi(x) - Phi_0(x)],

where Phi(x) is a given conservative potential, Phi_0(x) its
monopole and A(t) an adiabatic growth factor with A=0 at tt0+tau.
A data file is required and must be of the form
accname=NAME
[accpars=PARS]
[accfile=FILE]
characters after (and including) '#' are ignored.
Parameters: 5 with the meanings:
par[0] = t0: start time for growth [0]
par[1] = tau: time scale for growth [1]
par[2] = innermost radius in table for monopole [0.001]
par[3] = outermost radius in table for monopole [1000]
par[4] = number of points in table for monopole [1001]

nemo Debug Info: get_acceleration("DiscPot","0,37681.3,1,-0.025,0,0","(null)")

nemo Debug Info: single_acceleration("DiscPot", "0,37681.3,1,-0.025,0,0", "(null)")

nemo Debug Info: loadobj: /home/ssd/opt/nemo_newest/nemo/usr/dehnen/falcON/acc//DiscPot.so

nemo Debug Info: findfn: looking up iniacceleration

nemo debug info:

external potential "DiscPot" recognizes 5 parameters:
omega pattern speed (ignored)
Sig_0 central surface density [1]
R_d disc scale length [1]
z_d disc scale height [0.1]
R_0 radius of central hole [0]
eps cosine modulation term [0]
The disc density is given by rho(R,z)=Sigma(R)*h(z) with

Sigma(R) = Sig_0 exp(-R_0/R-R/R_d+eps*cos[R/R_d])

      exp(-z/z_d) / (2 z_d)          if z_d > 0

h(z) = delta(z) if z_d = 0
sech^2(z/2|z_d|) / (4|z_d|) if z_d < 0

nemo debug info:

external potential "DiscPot" initialized with:
Sig_0 = 37681.3
R_d = 1
z_d = -0.025
R_0 = 0
eps = 0

nemo Debug Info: hasvalue: checking indexing on inner

nemo Debug Info: hasvalue: checking indexing on outer

nemo Debug Info: hasvalue: checking indexing on eta

nemo Debug Info: hasvalue: checking indexing on r_2

falcON Debug Info [inc/public/halo.h:445]: ModifiedDoublePowerLawHalo: rh0=0.001375

nemo Debug Info: hasvalue: checking indexing on max_r

falcON Debug Info [src/public/lib/halo.cc:434]: HaloPotential: minimum & maximum tabulated radii = 0.0234375, 12288

falcON Error: [src/public/lib/halo.cc:500]: HaloPotential: external Rh(98.3572)=-9.323822386764764e-13

terminate called after throwing an instance of 'WDutils::exception'
what(): [src/public/lib/halo.cc:500]: HaloPotential: external Rh(98.3572)=-9.323822386764764e-13

PS1: I varied the parameters of the halo. The results are all the same. The bug appears.
PS2: I am a regular user of your software and am very grateful to you for your cumbersome work. It would be great if these issues could be resolved.

yapp_plplot improvements needed

  1. parsing the yapp= should be bettter enforced (e.g. yapp=png would leave a binary file for the png, if nothing after the comma, should assume some common name (yapp.png)

  2. the default plot is not square

  3. the configure options don't quite work (e.g. -lplplotd is reported)

PGPLOT_FONT missing

in some install scenarios the PGPLOT_FONT variable is missing:

%PGPLOT, Unable to read font file: grfont.dat
%PGPLOT, Use environment variable PGPLOT_FONT to specify the location of the PGPLOT grfont.dat file.

the solution is to add it to the nemo_local.(c)sh file
PGPLOT_FONT $NEMOLIB/grfont.dat
but obviously the root cause of this install problem needs to be solved.

NEMO library does not work in shared mode on linux

this is quite an old issue. Now that there is a new --enable-shared meant for falcON, it might be worthwhile if you care about disk space. There are nearly 300 files in $NEMOBIN, and it takes up about close to 200MB.

The current libnemo.so does actually not work anymore.

falcon compilation does not follow NEMO's configure model

This is a well known problem, but the recent introduction of make.sh.in that configure will turn into make.sh, which the falcON build system inherits, can help the situation.
In particular, setting a non-standard compiler should be done via configure, e.g.

   CC=gcc-10 CXX=g++-10 F77=gfortran-10 ./configure 

There are still some problems left to resolve, e.g. compiler options, non-compliance in clang, the compiler setting in bodyfunc

(ubuntu) pgplot giza upgrade issues

giza is advertised as a pgplot replacement. the good thing: it's all in C and you wouldn't depend on a Fortran-C interface.
THe bad thing (for nemo): it doesn't work with yapp_giza (yet).

I normally "apt install pgplot5" and that works. I leave giza alone.

But then my ubuntu box has some dependency somewhere else, and my pgplot5 got deleted, to be replaced by the giza suite.

The apt-mark command can actually hold/unhold packages, but obviously it would be good to fix the reason why yapp_giza is not working.

MacOSX 10.15.7 looses NEMO environment? (SIP)

To very weird issues on my latest mac update:

  1. /usr/bin/time COMMAND

looses (some ) environment variables , notably $DYLD_LIBRARY_PATH

  1. A simple bash script

#! /bin/bash
echo $SHELL
echo $DYLD_LIBRARY_PATH

shows $SHELL, but not an existent exported $DYLD_LIBRARY_PATH

  1. using a more modern bash (apple ships with 3.2.27) via brew it does manage to see $DYLD_LIBRARY_PATH, but clearly something odd is going on the latest macos.x

Ubuntu 20.04 LTS installation issues

Here we maintain a list of various installation issues for Ubuntu20: [release date April 23, 2020]

  • glnemo2 has dependency issues, so perhaps a special build for U20? @jcldc

default install fails in usr/dehnen

linking issues first time.
testsuite fails in src/nbody/evolve/dehnen and src/orbit/potential (missing Plummer.so)
2nd time "make -i clean all" in usr/dehnen it works.

various inefficient median routines

median.c is only defining a pointer based index sorting, (sortptr) which can be very slow.
turns out that median() is quite fast if a pre-sorted array is used.
this median -> pmedian (old one) and smedian( new one, assumes arrays were pre-sorted, e.g. with qsort()

programs which need to be refactored for this:
tabhist
tabstat
ccdstat (speedup is quite large for median=t)

and the library modules
median
moment

need some patches.

getparam: buffer overflow

Example:
ccdfits model.10.smooth model.10.fitsradecvel=t
*** buffer overflow detected ***: terminated
Aborted (core dumped)

seems the (wrong in this case) keyword is too long

falcON does not compile on clang

It seems falcon does not compile with my clang. @jcldc did you ever get this working, the make.clang file seems to originate from you. My version I just tried on Ubuntu 20.04 is 10.0.0, but U20.10 is now using version 11.0.0, haven't tried that yet.

Note the new

./configure --enable-clang

is broken, because flang does not like -g. So it's a manual labor of love to test this.

gyrfalcON does not compile on tiger lake CPU's

This is a case where the compiler does not know about the CPU yet. gyrfalcON uses -march=native to get the best possible speedup, but this fails on current intel Gen11 CPUs with the tiger lake based CPU.
The solution is to put
export NO_ARCH_NATIVE=1
in your ~/.nemo_local.sh file on that particular machine.

Not until falcON is using NEMO's makedefs mechanism, can we expect this kind of problem to go away.

handle fits.gz files

fits.gz files are getting pretty common now.
Would a solution be to use memory mapped files?

installation instructions

This is all historic, but too many installation instructions are still lying around. These need to be cleaned up before the 4.0 release, since they are no doubt not all consistent.

INSTALL
README.install
src/scripts/bootstrap
make install
text/manual/*inc (various places in the manual)

testsuite can hang in "sellwood"

the src/scripts/testsuite seems to hang on Sellwood's galaxy program, but so far only seen on Ubuntu 17.10 and not from a default nemo+pgplot git install, but certain manual tests with native pgplot/giza

improvements for checkpars.py

Now that we have a functional checkpars.py, we need a few enhancements: thanks @ParkerTewell for an excellent first version

  1. script needs to made "chmod +x ", but via git: git update-index --chmod=+x install.sh
    after this a regular commit push.

  2. I see a few programs with the output "man: None". Does this mean the man page doesn't exist. But I see a None for ccdmom, and the man page exists. There are a few more like this. But other "None" are indeed for missing man pages.

  3. Add a "-h" which reminds the user of the valid options, and then exit the program. Could also report a version, as most scripts and programs report that in the inline help option

  4. we already spoke about a "-f tasklist" where tasklist needs to be a valid file (either absolute or relative path)

  5. currently the script needs to be executed from src/scripts, but if the default tasklist is $NEMO/src/scripts/tasklist it can be from anywhere. use os.environ['NEMO'] to get $NEMO

io_nemo fails to link

The standard testsuite fails in io_nemo.
Run "src/scripts/testsuite" and the log file will contain the details.

sphinx 4.1.0 (e.g. on readthedocs now) is failing to compile html

Recently readthedocs must have upgraded to sphinx 4.1.0, and it's now failing with:

 Could not import extension sphinx.builders.epub3 (exception: cannot import name 'RemovedInSphinx40Warning' from 'sphinx.deprecation'

which you can locally invoke via

  cd $NEMO/doc 
  pip install -U -r requirements.txt

after this "make html" fails in the source directory.

"Direct" command missing

Hi,

I want to use the command "direct" to calculate Ewald sum for a periodic boundary condition but I can see only its man page (in manl directory) after installation. There is no executable "direct" in NEMO package after installation. There is a "directcode" command but it is not the command defined in the "man direct".

I also checked one of the older releases: ftp://ftp.astro.umd.edu/pub/nemo/nemo_2.4.1.tar.gz Again I couldn't file "direct" command.

Thank you
Huseyin

some tools not compiling without a fortran compiler

With --disable-fortran (even if you have one) the fortran compiler is disabled in makedefs.
Some tools that should compile, don't compile. potlist is one example. Since FC=echo is set
for those case, some tools could take advantage of this setting to not report a fail

mdarray use of allocate()

there are some mysterious segfaults at the end of some programs that use mdarray.
E.g. sdinfo

malloc(): smallbin double linked list corrupted
corrupted size vs. prev_size

tabplot/tabhist in native python

NEMO's tabplot (and also tabhist) are very useful for quick analysis of tabular
data without having to open complex programs and a complex user interface.
For a given table (or CSV file) it's usually as simple as

   tabplot file.tab

which would plot columns 1 and 2. However, in NEMO's C program there is no further
interaction possible. In python's matplotlib there is an additional pan and zoom
option. We would like to make a simple version of tabplot and tabhist that will use
python. There are the following design issues:

  1. The command line user interface?

    1. Clone NEMO's key=value
    2. Use the unix style --key value, e.g. using parseargs
    3. Use docopt's self-describing, it also allows -key=val
    4. something else
  2. How to read the table. We have simple SSV (space separated values), the TSV, CSV
    and perhaps a few others.

    1. astropy tables https://docs.astropy.org/en/stable/table/index.html
      This sometimes also gives columns a name, so instead of column 1 vs. column 2,
      this could allow names, not 1-based integers.
    2. build something from scratch
  3. In matplotlib it's a bit tricky to run interactive (this should be the default) and
    in a pipeline. In NEMO this is usually done via the yapp_pgplot style, e.g.
    yapp=2/xs would open XS window 2, but yapp=plot2.png/png would write it to a PNG file.

  4. Only a few basic options should be implemented (at first). The current programs have a rather large set of options that we probably don't need. However, the layout= keyword could be an interesting one that needs some thought.

s2s in falcON fails for gcc-11

As seen on ubuntu 21.10:

    s2s p1024.in p1024.out3 filter='i<#0' params=512

fails with

falcON Error: bodyfunc::bodyfunc(): could not compile expression; perhaps it contains a syntax error

gadget2 different results for different NP

Although not a NEMO issue per se, and most people would say that gadget2 is old software, I recently revived the install within NEMO, see $NEMO/usr/gadget and if you have the needed libraries, the command "mknemo gadget2" might then work for you.
The "make galaxy" benchmark can be run with different values of NP, and this resulted in snapshots that diverged, which is unexpected. NP=1 did however agree with a run outside of the runmpi environment.

falcON vs MacOSX vs gcc 4.9

I had an issue to compile falcON on MacOSX using gcc 4.9.

I had to modify utils/make.gcc to :

  1. specify gnu compilers (gcc,g++)
  2. remove -rdynamic and -march=native from OPTFLAGS

with those modifications, dehnen's stuffs successfully compiled.

Note that there are no options to compile wth clang compiler (native macosx) although utils/makefile mention it.

io_nemo fails with gfortran-10 (on mac)

gfortran-10 is a more strict compiler, it does not like the varargs style it internally finds that is being used. This might be something for @jcldc possibly an extra flag to the compiler

no warning if I/O buffer too small in pipe

In this example:
fitsccd tmp1.fits - | ccdstat -
for small files this works, as long as the file fits in memory, but there is no warning if not. then ccdstat will just report a 0 data array. Not good.

cfitsio build broken for NEMO on mac

this may be my usual "i don't know enough macOS". The internal builds on the mac for hdf4 ad hdf5 work fine, but cfitsio breaks during runtime complaining about a dylib not found. The DYLD_LIBRARY_PATH is properly set, so I have no idea why this isn't working.

The reproduce:
configure
make cfitsio
configure --with-opt --without-csh
make build1 build2
...

galaxy vs. galaxy15

The new mknemo galaxy15 will overwrite the old V1.3 galaxy. change to galaxy13.exe ? rungalaxy should also be made to run V1.3, and maybe V1.5 ?

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.