calculating pair distribution function using an xyz file.

1,577 views
Skip to first unread message

gopakumar....@gmail.com

unread,
Jul 22, 2014, 8:52:19 AM7/22/14
to diffpy...@googlegroups.com
Hi all,

    I am new in the forum and forgive me for this naive question. I am interested in
calculating the pair distribution function for a given structure. Since I derive my
structure from quantum chemical calculation I do not have the u11, u22, u33... values
(all I have is the xyz coordinates). Due to this fact, while loading the structure, I get
the following error message "Structure has atoms with all zero ADP values". I was
wondering is there any way to calculate the u11, u22, u33... values theoretically, or
there is any way to generate PDF starting from a xyz file. Any help is highly appreciated.

Thanking you for your time

Gopakumar

Xu Wenqian

unread,
Jul 22, 2014, 10:59:05 AM7/22/14
to diffpy...@googlegroups.com
Hi Gopakumar,
 
You can use 0.01 for u11, u22 and u33 as an initial value. Select the whole area including u11, u22, u33 and all rows of atoms, type 0.01, then enter.  Then you can calculate a PDF.
 
Best,
 
Wenqian


--
You received this message because you are subscribed to the Google Groups "diffpy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diffpy-users...@googlegroups.com.
To post to this group, send email to diffpy...@googlegroups.com.
Visit this group at http://groups.google.com/group/diffpy-users.
For more options, visit https://groups.google.com/d/optout.

Pavol Juhas

unread,
Jul 22, 2014, 11:56:15 AM7/22/14
to diffpy...@googlegroups.com
Hi Gopakumar,

To calculate PDF from an xyz file, I would recommend to use the new
DiffPy-CMI software instead of PDFgui. PDFgui assumes periodic
boundary conditions for every structure. This can be somewhat worked
around by using a very large unit cell (details in the archives of
this group), but it is not quite right as there would be always some
negative sloping background.

Please, see the cmi_exchange at
https://github.com/diffpy/cmi_exchange/tree/master/cmi_scripts/calcpdfc60
for an example of how to calculate PDF from a non-periodic molecule.
The loadStructure
function used in the c60.py example can read an xyz files. By default all atoms
would have zero displacement parameters (ADPs) so the
only broadening would come from the qmax limit for the Debye summation that
is performed inside DebyePDFCalculator and the curve would have
oscillations (at zero
ADPs the PDF becomes a sum of sinc profiles). As Wenqian suggested, you can
set all atoms to use some small displacement parameters, which would produce
a smooth curve, for example:

...
stru = loadStructure('myfile.xyz')
stru.Uisoequiv = 0.004
dpc = DebyePDFCalculator()
r, g = dpc(stru)
...

Hope this helps,
Pavol

On Tue, Jul 22, 2014 at 8:52 AM, <gopakumar....@gmail.com> wrote:
> --
> You received this message because you are subscribed to the Google Groups
> "diffpy-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to diffpy-users...@googlegroups.com.
> To post to this group, send email to diffpy...@googlegroups.com.
> Visit this group at http://groups.google.com/group/diffpy-users.
> For more options, visit https://groups.google.com/d/optout.



--
Dr. Pavol Juhas
Condensed Matter Physics and Materials Science Department
Brookhaven National Laboratory
P.O. Box 5000
Upton, NY 11973-5000
tel: +1-631-344-3594
fax: +1-631-344-2739

Simon Billinge

unread,
Jul 22, 2014, 1:05:52 PM7/22/14
to diffpy-users
Dear Gopakumar,

Pavol is right, but only do this if you are somewhat familiar with software scripting in general, and preferrably scripting in Python.  Or at least, be aware that writing computer scripts will be involved.  If you are not so comfortable with that then stick with PDFgui and the sloping background.

Having said that, to all diffpy-users out there, Pavol is right.....doing it with diffpy-CMI is the right way to go and we want to encourage as many of you as possible to play with it and give us your feedback.  All of PDFgui _functionality_ is in CMI and much much more....but there is no gui as yet.

S
----
Prof. Simon Billinge

Applied Physics & Applied Mathematics
Columbia University
500 West 120th Street
Room 200 Mudd, MC 4701
New York, NY 10027
Tel: (212)-854-2918 (o) 851-7428 (lab)

Condensed Matter Physics and Materials Science Dept.

Brookhaven National Laboratory
P.O. Box 5000
Upton, NY 11973-5000
(631)-344-3594

email: sb2896 at columbia dot edu
home: http://bgsite.apam.columbia.edu

Gopakumar G

unread,
Jul 23, 2014, 8:56:28 AM7/23/14
to diffpy...@googlegroups.com
Dear Prof. Simon Billinge, Pavol and Wenqian,

      Many thanks for your comments and suggestions. It is helpful. However I have few more
concerns and I would be grateful if you could help me with that.

First of all, I was able to install Diffpy-CMI under linux (Ubuntu 12.04) and was able to run the
example as suggested by Pavol. Later, I've adapted the python code, and did manage to generate
the PDF data for my molecule. I have used a small U value as suggested by Wenqian and Pavol
(stru.Uisoequiv = 0.004). After playing around with the program and the script I came across with
a number of issues and thought to clarify few additional points.

1)  In the case of the C60 example, two PDF plots are generated, one which is levelled at zero
while second one has both negative and positive phases. I think the second one is generated
using "DebyePDFCalculator(c60, qmin=1)", where as 'qmin=0' was used for the first plot. On
going through the literature, in general I see that the reported PDF has negative and positive
phases. I was wondering what is the difference between these two plots and which one of these
would be the true representation of experiment.

2)  My second question is about 'c60.stru' file format. I was wondering about the value '0.2369' in
the last column of this file, what is it? I guess the other columns are atom label, x, y and z. Is it
possible to convert a standard .xyz file to .stru format?

3)  As Pavol mentioned using a small U value (stru.Uisoequiv = 0.004) produced a smooth curve
in my case. My question is, how sensitive is this value. I mean, if I have an experimental data
and I play around with the Uisoequiv value to get a nice fit between the experimental and calculated
PDF, is it an acceptable strategy? or Do I have to always use small Uisoequiv values like 0.004 or 0.01?
Are there any recommended values?

4) Finally I was trying to install Diffpy-CMI under 64bit Mac and was getting a strange error message
listed below:

-----
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
scons: *** [build/fast-x86_64/libdiffpy.dylib] Error 1
scons: building terminated because of errors.

##############################################################################
Build failure, installation cancelled.
##############################################################################

Check if all required software is installed and try again.

----------
I have managed to install all dependencies, and do not know what is going wrong here.


I would be grateful if somebody could help me in fixing these issues

Thanking you all for your help

Sincerely yours

Gopakumar

Simon Billinge

unread,
Jul 23, 2014, 9:44:30 AM7/23/14
to diffpy-users
Thanks Gopakumar, it is great to see you digging into this!  Thanks so much for doing it, and the great feedback!

S

Kevin Knox

unread,
Jul 23, 2014, 12:04:22 PM7/23/14
to diffpy...@googlegroups.com
Hi Gopakumar,

I can answer some of your questions:


1)  In the case of the C60 example, two PDF plots are generated, one which is levelled at zero
while second one has both negative and positive phases. I think the second one is generated
using "DebyePDFCalculator(c60, qmin=1)", where as 'qmin=0' was used for the first plot. On
going through the literature, in general I see that the reported PDF has negative and positive
phases. I was wondering what is the difference between these two plots and which one of these
would be the true representation of experiment.


The correct plot to use is the one where qmin has been set to 1.  Since it is experimentally difficult to measure low Q diffraction at most PDF beamlines it is customary to cut off the low Q signal when calculating the PDF.  So, the same should be done when simulating a PDF from a structure file.

Regarding the negative portion of the PDF, it is due to the background, not a negative peak in this case. In general, the PDF sits on a negatively sloping background at low r given by - 4 pi r rho, where rho is the average density of the material.  For nanoparticles or molecules the background is also modified by an overall shape function, but you should still expect to see a negatively sloping linear background at low r.

 

2)  My second question is about 'c60.stru' file format. I was wondering about the value '0.2369' in
the last column of this file, what is it? I guess the other columns are atom label, x, y and z. Is it
possible to convert a standard .xyz file to .stru format?


The last column in the c60.stru format specifies the Debye-Waller factor used to calculate the thermal broadening in the PDF.  This is related to the U value you used in your calculation (B is proportional to exp(-U^2) ).  In general, you can specify either B or U when calculating a PDF. 

If you've run the c60.py script in an IPython session then you can simply execute c60.write('filename','xyz) to save the c60 structure in 'xyz' format.  However, since the 'xyz' format does not contain Debye-Waller factors you cannot convert to 'xyz' to 'stru.'  DiffPy-CMI can work with a number of file formats, however, so you should have no problem opening standard structure files.

 
3)  As Pavol mentioned using a small U value (stru.Uisoequiv = 0.004) produced a smooth curve
in my case. My question is, how sensitive is this value. I mean, if I have an experimental data
and I play around with the Uisoequiv value to get a nice fit between the experimental and calculated
PDF, is it an acceptable strategy? or Do I have to always use small Uisoequiv values like 0.004 or 0.01?
Are there any recommended values?

Yes, you should allow Uiso to vary as a parameter in your refinements.  It's unlikely that you'll get a good fit otherwise.  Uiso is a measure of the local atomic displacement in your material so the value you'll get will depend on the material and the temperature.  The unit is Angstroms^2 (take the square root to estimate atomic displacement) so a Uiso value of 0.01 implies an atomic displacement of order 0.1 Angstroms, which is already quite large.

To see examples of using DiffPy-CMI to refine a structure take a look at the following scripts in the cmi-exchange:


 

4) Finally I was trying to install Diffpy-CMI under 64bit Mac and was getting a strange error message
listed below:

-----
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
scons: *** [build/fast-x86_64/libdiffpy.dylib] Error 1
scons: building terminated because of errors.

##############################################################################
Build failure, installation cancelled.
##############################################################################

Check if all required software is installed and try again.

----------

Do you have any more details on the error?  Were there any other error messages printed?  One thing to check is that the default version of python on your system is the macports version of python and not Enthought or some other version.  If you type 'which python' in a terminal, you should get /opt/local/bin/python


I hope these answers are helpful.  Let us know if you have further questions.

Best,
Kevin



--
Kevin Knox
Research Associate
Condensed Matter Physics Dept.
Brookhaven National Laboratory
(631)344-5661
kk...@bnl.gov

Pavol Juhas

unread,
Jul 23, 2014, 12:21:44 PM7/23/14
to diffpy...@googlegroups.com
On Wed, Jul 23, 2014 at 12:04 PM, Kevin Knox <kevin...@gmail.com> wrote:
>>
>> 2) My second question is about 'c60.stru' file format. I was wondering
>> about the value '0.2369' in
>> the last column of this file, what is it? I guess the other columns are
>> atom label, x, y and z. Is it
>> possible to convert a standard .xyz file to .stru format?
>>
>
> The last column in the c60.stru format specifies the Debye-Waller factor
> used to calculate the thermal broadening in the PDF. This is related to the
> U value you used in your calculation (B is proportional to exp(-U^2) ). In
> general, you can specify either B or U when calculating a PDF.

B is actually directly proportional to U as B = 8*pi^2 * U.
http://www.iucr.org/__data/iucr/cifdic_html/1/cif_core.dic/Iatom_site_B_iso_or_equiv.html

Kevin Knox

unread,
Jul 23, 2014, 2:48:37 PM7/23/14
to diffpy...@googlegroups.com
Apologies for the error.  Thanks for clarifying, Pavol.


--
You received this message because you are subscribed to the Google Groups "diffpy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diffpy-users...@googlegroups.com.
To post to this group, send email to diffpy...@googlegroups.com.
Visit this group at http://groups.google.com/group/diffpy-users.
For more options, visit https://groups.google.com/d/optout.

Gopakumar G

unread,
Jul 23, 2014, 4:30:43 PM7/23/14
to diffpy...@googlegroups.com
Dear Kevin and Pavol,

     Many thanks for your messages and clarifications. Thanks a lot, I will go
through the example. Before that let me come to the installation problem first.

I deleted the entire diffpy directory and started fresh by extracting the archive,
following the instructions exactly as it is posted on the website. This time everything
worked fine. Now, I have problems running the tests. The output of ./runtests.sh is given
below:
-------
# Testing diffpy.Structure:
...................................................................................................
----------------------------------------------------------------------
Ran 99 tests in 1.628s

OK

# Testing diffpy.utils:
..
----------------------------------------------------------------------
Ran 2 tests in 0.003s

OK

# Testing diffpy.srreal:
.Python(85290,0x7fff75a90310) malloc: *** error for object 0x111a0e3c0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
./runtests.sh: line 12: 85290 Abort trap: 6           python -m diffpy.srreal.tests.run

# Testing pyobjcryst:
..................................................................
----------------------------------------------------------------------
Ran 66 tests in 5.523s

OK

# Testing diffpy.srfit:
WARNING:root:dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/optimize/_lbfgsb.so, 2): Symbol not found: __gfortran_transfer_character_write
  Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/optimize/_lbfgsb.so
  Expected in: /Applications/MATLAB/MATLAB_Compiler_Runtime/v717/sys/os/maci64/libgfortran.3.dylib
 in /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/optimize/_lbfgsb.so, SaS tests skipped.
........................................................./runtests.sh: line 20: 85293 Segmentation fault: 11  python -m diffpy.srfit.tests.run

-----------------------


I think diffpy.srreal and diffpy.srfit have some problems. There is something wrong and I cannot figure out
what happened. Can you have a look. I would be grateful for your help and suggestions.


Thanking you for your time

Sincerely yours

Gopakumar

Pavol Juhas

unread,
Jul 23, 2014, 5:39:14 PM7/23/14
to diffpy...@googlegroups.com
On Wed, Jul 23, 2014 at 01:30:43PM -0700, Gopakumar G wrote:
...
> # Testing diffpy.srreal:
> .Python(85290,0x7fff75a90310) malloc: *** error for object 0x111a0e3c0:
> pointer being freed was not allocated
> *** set a breakpoint in malloc_error_break to debug
...

> # Testing diffpy.srfit:
> WARNING:root:dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/optimize/_lbfgsb.so,
> 2): Symbol not found: __gfortran_transfer_character_write
> Referenced from:
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/optimize/_lbfgsb.so
> Expected in:
> /Applications/MATLAB/MATLAB_Compiler_Runtime/v717/sys/os/maci64/libgfortran.3.dylib


Hi Gopakumar,

Perhaps both of these problems are related. diffpy.srfit crashed
on importing the scipy package which gets installed as a part of
macports, but the error message refers to libgfortran library from
MATLAB compiler! It seems that MATLAB installation somehow
interferes with the macports build system and the scipy attempts
to use MATLAB libraries instead of those included with macports.

Please, check if any of the DYLD_LIBRARY_PATH, LD_LIBRARY_PATH
or LIBRARY_PATH environment variables are set (see the output
of "env | grep PATH") and if yes, unset them and try to import
the scipy.optimize module in Python, for example:

unset DYLD_LIBRARY_PATH
python -c "import scipy.optimize"

If this gives the same error message referring MATLAB runtime,
you might need to reinstall scipy. Make sure Xcode is updated
to its current version and also make sure using "which cc",
"which gcc" that the active C-compiler is in /usr/bin/; (I am
not sure if MATLAB includes its own cc or gcc wrapper versions).
Unset the CPATH and LIBRARY_PATH environment variables and
try to reinstall macports scipy with

sudo -E port -f uinstall scipy
sudo -E port install scipy

Once the scipy package works and MATLAB compiler is out of the
way, check the ./runtests.sh again. If it still fails, remove
any "build" directories inside the src folder (you can list them
with "find src/ -type d -name build") and reinstall all CMI packages
using

./install --build

I hope this helps, let me know if there are still problems.

Pavol

Gopakumar G

unread,
Jul 24, 2014, 4:19:45 AM7/24/14
to diffpy...@googlegroups.com, pju...@bnl.gov
Dear Pavol,

      Many thanks for the tips. As first step, I tried to unset the DYLD_LIBRARY_PATH,
LD_LIBRARY_PATH and LIBRARY_PATH environment variables.
The command python -c "import scipy.optimize" returned no error.

When I tried ./runtests.sh, only MATLAB errors disappeared. The messages are
given below:

=======================

# Testing diffpy.Structure:
...................................................................................................
----------------------------------------------------------------------
Ran 99 tests in 1.274s


OK

# Testing diffpy.utils:
..
----------------------------------------------------------------------
Ran 2 tests in 0.002s

OK

# Testing diffpy.srreal:
.Python(92009,0x7fff75a90310) malloc: *** error for object 0x1054ca310: pointer being freed was not allocated

*** set a breakpoint in malloc_error_break to debug
./runtests.sh: line 12: 92009 Abort trap: 6           python -m diffpy.srreal.tests.run


# Testing pyobjcryst:
..................................................................
----------------------------------------------------------------------
Ran 66 tests in 5.791s

OK

# Testing diffpy.srfit:
............................................................./runtests.sh: line 20: 92016 Segmentation fault: 11  python -m diffpy.srfit.tests.run
============================

I have also tried to reinstall macports scipy with the following commands


          sudo -E port -f uinstall scipy
          sudo -E port install scipy

and it produced an error message

         Error: Unrecognized action "port uinstall"

Therefore I tried the following commands

          sudo -E port -f uninstall py27-scipy
          sudo -E port install py27-scipy

and reinstalled scipy. However, ./runtests.sh is still giving me the above error messages
along with a small pop-up window informing "Python quit unexpectedly. Click Reopen to
open the application again. Click Report to see more detailed information and send a report
to Apple"

I have also tried to reinstall it using "./install --build", but ./runtests.sh returned same
error messages

I am sorry to trouble you people. I would be grateful if you could help me fixing these errors.


Thanking you for your time

Sincerely yours

Gopakumar





Pavol Juhas

unread,
Jul 24, 2014, 11:55:40 AM7/24/14
to diffpy...@googlegroups.com
Hi Gopakumar,

I am sorry there are still troubles with the installation. First thing to check
is if macports python is the first one in PATH when running the runtest.sh
script, ie, you should see the following output for "which python":

$ which python
/opt/local/bin/python

If that is good and the tests still fail, chances are that the active
DiffPy modules
are still linked to MATLAB compiler libraries instead of the MacPorts one. The
simplest fix is to reinstall DiffPy-CMI again from scratch, i.e.,
completely remove the diffpy_cmi-1.0
directory and unzip it again from the tarball. Make sure all
compiler-related environment
variables are unset and that the MacPorts bin directory is the first
in PATH and redo
the installation:


# unset all environment variables that might affect the DiffPy-CMI build:
unset CPATH CPLUS_INCLUDE_PATH C_INCLUDE_PATH LIBRARY_PATH
unset OBJCPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH
unset PYTHONPATH

# ensure MacPorts bin directory is the first in PATH
export PATH="/opt/local/bin:${PATH}"

# run the install and test scripts:
./install
./runtest.sh


If the tests pass, you can skip the rest of this message.

If they however still give a segmentation faults or malloc errors, run
the following command
from the base diffpy_cmi directory to list all shared libraries used
by DiffPy-CMI:

cd .../wherever/is/diffpy_cmi-1.0
zsh -c 'otool -L lib/**/*.(so|dylib)' | xargs ls -d 2>/dev/null | uniq

For my installation this produces the following list:

/Users/pjuhas/diffpy_cmi-1.0/lib/libObjCryst.dylib
/Users/pjuhas/diffpy_cmi-1.0/lib/libdiffpy.dylib
/opt/local/lib/libboost_python-mt.dylib
/opt/local/lib/libboost_serialization-mt.dylib
/opt/local/lib/libgsl.0.dylib
/opt/local/lib/libgslcblas.0.dylib
/usr/lib/libSystem.B.dylib
/usr/lib/libc++.1.dylib

You should get the same list, just with a different base directory for
diffpy_cmi.
If there are any MATLAB or other suspicious libraries, inspect the
full output from

zsh -c 'otool -L lib/**/*.(so|dylib)'

to find out which of the CMI executables are still linked with them
and email me the output.

I hope it works,
Pavol
> --
> You received this message because you are subscribed to the Google Groups
> "diffpy-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to diffpy-users...@googlegroups.com.
> To post to this group, send email to diffpy...@googlegroups.com.
> Visit this group at http://groups.google.com/group/diffpy-users.
> For more options, visit https://groups.google.com/d/optout.



--
Dr. Pavol Juhas
Condensed Matter Physics and Materials Science Department
Brookhaven National Laboratory
P.O. Box 5000
Upton, NY 11973-5000
tel: +1-631-344-3594
fax: +1-631-344-2739

Pavol Juhas

unread,
Jul 25, 2014, 12:12:44 PM7/25/14
to G. Gopakumar, diffpy...@googlegroups.com
On Fri, Jul 25, 2014 at 12:55:10PM +0200, G. Gopakumar wrote:
...
> Reinstalling diffpy from scratch didn't work in my case.
> I still get the following error message while running the
> tests
...
> # Testing diffpy.srreal:
> .Python(21973,0x7fff75a90310) malloc: *** error for object 0x10989a310:
> pointer being freed was not allocated
> *** set a breakpoint in malloc_error_break to debug
> ./runtests.sh: line 12: 21973 Abort trap: 6 python -m
> diffpy.srreal.tests.run
...
> After that I tried the commands that you mentioned in your email, the
> output looked a
> bit different from what you had in your machine. Please find it below:
>
> =====================================
>
> mccec0054:diffpy_cmi-1.0 gopa$ zsh -c 'otool -L lib/**/*.(so|dylib)' | xargs ls -d 2>/dev/null | uniq
> /Users/gopa/Utilities/diffpy_cmi-1.0/lib/libObjCryst.dylib
> /Users/gopa/Utilities/diffpy_cmi-1.0/lib/libdiffpy.dylib
> /opt/local/lib/libgsl.0.dylib
> /opt/local/lib/libgslcblas.0.dylib
> /usr/lib/libSystem.B.dylib
> /usr/lib/libc++.1.dylib
> /usr/local/lib/libgcc_s.1.dylib
> /usr/local/lib/libstdc++.6.dylib

Hi Gopakumar,

The culprit is in the last 2 lines - it seems there is another
version of g++ installed under /usr/local, which is used instead of
the XCode compiler in /usr/bin. The MacPorts Python is built by
XCode, but DiffPy libraries by some other compiler resulting in
incompatibilities.

This can be fixed by adjusting the PATH in your terminal session
so that the XCode g++ is found before the one in /usr/local/bin:

export PATH="/opt/local/bin:/usr/bin:${PATH}"

Check if the g++ and python commands are found in the PATH as
intended, ie,

$ which python
/opt/local/bin/python
$ which g++
/usr/bin/g++

and if so, reinstall the DiffPy-CMI again.

If you prefer to have your local g++ as the first compiler,
you can avoid the mixed compilation of DiffPy-CMI in the future
by editing all sconscript.local files in the src/ folder;
there should be 3 of them in

src/diffpy.srreal/sconscript.local
src/libdiffpy/sconscript.local
src/pyobjcryst/sconscript.local

and appending the following line to the end of each file:

env.Replace(CXX='/usr/bin/g++')

This line sets the C++ compiler with its full path so the build
system would then use the XCode g++ regardless of the PATH value.

I hope this will finally work. Thanks for your patience with
DiffPy-CMI. Best,

Gopakumar G

unread,
Jul 25, 2014, 3:02:28 PM7/25/14
to diffpy...@googlegroups.com, gopakumar....@gmail.com, pju...@bnl.gov
Hi Pavol,

     I am sorry to bother you once again. This time, I am having problem in
compiling.

The last part of the error message is given below:

===================
  "boost::archive::basic_binary_oprimitive<boost::archive::binary_oarchive, char, std::__1::char_traits<char> >::~basic_binary_oprimitive()", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > diffpy::serialization_tostring<diffpy::eventticker::EventTicker>(diffpy::eventticker::EventTicker const&) in EventTicker.os
      boost::archive::binary_oarchive::~binary_oarchive() in EventTicker.os
      boost::archive::binary_oarchive::~binary_oarchive() in EventTicker.os
      boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::__1::char_traits<char> >::~binary_oarchive_impl() in EventTicker.os
      boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::__1::char_traits<char> >::~binary_oarchive_impl() in EventTicker.os
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > diffpy::serialization_tostring<diffpy::srreal::AtomRadiiTable>(diffpy::srreal::AtomRadiiTable const&) in AtomRadiiTable.os
      boost::archive::binary_oarchive::~binary_oarchive() in AtomRadiiTable.os
      ...

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

scons: *** [build/fast-x86_64/libdiffpy.dylib] Error 1
scons: building terminated because of errors.

##############################################################################
Build failure, installation cancelled.
##############################################################################

Check if all required software is installed and try again.
===============================================

I guess the paths are ok now. For example
-----------------------------------------------------
$ which scons
/opt/local/bin/scons

$ which python
/opt/local/bin/python
$ which g++
/usr/bin/g++
-----------------------------------------------------

Thanking you for your help

with kind regards

Gopakumar

Pavol Juhas

unread,
Jul 28, 2014, 6:19:40 PM7/28/14
to diffpy...@googlegroups.com
Hi Gopakumar,

Just for a mailing list reference I am posting a summary here.
The problem was due to another version of the boost libraries
within the system that were used instead of the boost from
MacPorts. Installation worked once we ensured g++ uses
the MacPorts libraries as was intended.
Reply all
Reply to author
Forward
0 new messages