Xyce Version 6.12 has been released

195 views
Skip to first unread message

xyce-users

unread,
Oct 29, 2019, 6:17:13 PM10/29/19
to xyce-users
The Xyce™ team is happy to announce the release off version 6.12, which may be downloaded from our web site, https://xyce.sandia.gov/ and from our github repositories.

Please see the attached release notes for details of the changes made in this release.

Thank you for your interest,
The Xyce™ Team

Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International, Inc., for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA0003525.
Release_Notes_6.12.pdf

Alex Pacini

unread,
Oct 30, 2019, 5:02:25 AM10/30/19
to xyce-users
Thanks for the new release. 
I saw on github few commits for the YLIN frequency defined components and touchstone defined component.
Is it expected for the next release?

Thanks, Alex.

Alexandre Pottrain

unread,
Oct 30, 2019, 5:04:26 AM10/30/19
to xyce-users
Hi Xyce team.
Thanks a lot for this new release !



--
You received this message because you are subscribed to the Google Groups "xyce-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xyce-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/xyce-users/b1d49294-dc3d-4ab5-b8e9-f73d276926b7%40googlegroups.com.

Yefim Varshavsky

unread,
Oct 30, 2019, 5:06:55 AM10/30/19
to xyce-users
Hello Alex, Great question
I am intrested too to know if we could incorporate. S2P files

xyce-users

unread,
Oct 30, 2019, 9:49:09 AM10/30/19
to xyce-users
The YLIN device is where the support for reading touchstone files and running devices based on them will be, but it is not ready yet.  You can follow its development in git, but it may be some time before it is fully functional.

xyce-users

unread,
Oct 30, 2019, 10:41:58 AM10/30/19
to xyce-users
To answer Yefim's questions, the "in-development version" of the YLIN device currently only ingests Touchstone 2 formatted files that were created by a Xyce .LIN analysis.  That's mainly for testing purposes for developing the YLIN device.  Additional work would be needed for ingesting information from Touchstone 1 formatted files, or Touchstone files generated by other simulation tools.

xyce-users

unread,
Oct 30, 2019, 2:15:06 PM10/30/19
to xyce-users
I should point out (since it has already come up with a user) that if you are a user of Xyce/ADMS in any way that is more sophisticated than simply running the "buildxyceplugin" script, there have been changes to how you must invoke admsXml with Xyce/ADMS xml scripts.  Please review the updated Xyce/ADMS Users Guide at https://xyce.sandia.gov/documentation/XyceADMSGuide.html if you were using the capability previously.

Fede

unread,
Oct 30, 2019, 3:38:40 PM10/30/19
to xyce-users
I read in the Release Notes (and Building Guide) that the new required minimum version of Trilinos is 12.12.1. The download page https://trilinos.github.io/download.html points to the github code repository. However, the repository has no releases. Should one use master?

xyce-users

unread,
Oct 30, 2019, 3:43:20 PM10/30/19
to xyce-users
No, definitely do NOT use master.  You must use the 12.12.1 version.  They did not mark this as a "release" by GitHub definition (it does not appear in the "release" tab), but there is both a tag for it (that shows up in the Releases/Tags tab)


and a branch (that shows up in the pull-down menu for the branches) called "trilinos-release-12-12-branch":

Thomas Russo

unread,
Oct 30, 2019, 3:45:46 PM10/30/19
to xyce-users
Thank you for pointing out that the Trilinos download page has changed and no longer points directly to their main github repository, nor to any prior releases. 

One should look at the main trilinos github repository at https://github.com/trilinos/Trilinos.

We will have to clarify this in our building guide.

xyce-users

unread,
Oct 30, 2019, 4:15:53 PM10/30/19
to xyce-users

Fede:  Thank you for pointing out this problem with the building guide.  The Trilinos web site used to provide an easy way to access the releases as a tar file, and now it just points at a stub of a github site that doesn't have any releases at all.  It is unfortunate that the very version of Trilinos we require is now inaccessible from the official trilinos web site, but there you have it.


I have updated the Xyce building guide to point directly at the exact Trilinos 12.12.1 release tag that can be used to get the correct version of Trilinos in one step.  Unfortunately we are having some trouble with our content management system and the changes I have made are not yet published.  The short answer is that one must download directly from the tag page on Github. 

The instructions in the building guide have not yet been updated to reflect the change in the name of the tarball and the name of the directory that will be present in the tarball downloaded from github.  Once we get the CMS issue resolved and can actually get the web site republished, I'll fix up that issue, too.

Thank you for pointing out this problem.

rohit yadav

unread,
Nov 10, 2019, 3:33:09 PM11/10/19
to xyce-users
Hi,

Thanks for the new release! 

I am trying build the Xyce-6.12.0, serial version. However, I am finding the following error:

#+begin_src log
make[3]: Entering directory '/build/Xyce-Release-6.12.0/src'
  CXX      Xyce.o
  CCLD     libxyce.la
ar: `u' modifier ignored since `D' is the default (see `U')
  CXXLD    Xyce
/nix/store/mgdjnsrkqgmxqjaqaxgqyqm7fwyi96fk-binutils-2.31.1/bin/ld: /nix/store/ia3ndqanzp7qmjsrw170mc6d1ndkn5vg-trilinos-serial-xyce-12.12.1/lib/libepetra.a(Epetra_LAPACK.cpp.o): in function `Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, double*, int, double*, int, double*, double*, double*, int, double*, int, double*, int, double*, int*, int*) const':
(.text+0x1485): undefined reference to `dggsvd_'
/nix/store/mgdjnsrkqgmxqjaqaxgqyqm7fwyi96fk-binutils-2.31.1/bin/ld: /nix/store/ia3ndqanzp7qmjsrw170mc6d1ndkn5vg-trilinos-serial-xyce-12.12.1/lib/libepetra.a(Epetra_LAPACK.cpp.o): in function `Epetra_LAPACK::GGSVD(char, char, char, int, int, int, int*, int*, float*, int, float*, int, float*, float*, float*, int, float*, int, float*, int, float*, int*, int*) const':
(.text+0x1565): undefined reference to `sggsvd_'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:796: Xyce] Error 1
#+end_src

A complete build log file is attached.

Regards,
Rohit
20191110_1417_xyce-seial-6p12_build.log

xyce-users

unread,
Nov 10, 2019, 5:01:10 PM11/10/19
to xyce-users
Rohit:  this is a little puzzling, and will require a little more information.  Please let us know:

  • what OS you're compiling on
  • the exact command you used to configure Trilinos
  • the exact command you used to configure Xyce
We have seen other cases of this sort of error cropping up, and so far it has usually boiled down to differences in how Trilinos and Xyce have been configured and compiled.  But without seeing the answers to the above three questions, the best we can do is guess.

rohit yadav

unread,
Nov 10, 2019, 7:33:20 PM11/10/19
to xyce-users
Hi,

I am compiling on ubuntu 19.04. I am building using nix package manager. I have successfully built xyce 6.11.1 with it. I have attached the trilinos and xyce build script here.

Regards,
Rohit
xyce-serial-trilinos.nix
xyce-serial-6p12.nix

xyce-users

unread,
Nov 11, 2019, 1:40:41 AM11/11/19
to xyce-users

The link errors you see are very strange and we have not ever seen them on any Linux system.  We routinely build on an older Ubuntu system, but have not attempted it on 19.04.

We are unable to give you any specific assistance with the nix package manager. 

None of our systems here run Ubuntu 19.04, so it may be some time before we can try building Xyce on that system ourselves (it will require one of our developers creating a virtual machine and investigating the link errors, if they are repeatable).  The only thing we can suggest in the meantime is to try to build Xyce and Trilinos manually outside of the package manager, to isolate the problem.

rohit yadav

unread,
Nov 11, 2019, 2:17:35 AM11/11/19
to xyce-users
Thanks a lot for the response and for looking at the issue promptly. Actually, nix package manager allows you to build packages in total isolation and has no dependency on the system binaries. In any case, I will try to debug and see what may be causing this. 

Regards,
Rohit

Alex Pacini

unread,
Nov 11, 2019, 3:52:53 PM11/11/19
to xyce-users

I install Xyce using a simple Dockerfile using docker. Copy the following and save it as Dockerfile. Feel free to improve it.
It will install also Python 3.8 as I use it pre/post-processing and to run Xyce simulations. When I will have the wrapper ready for publication I am planning to release it but it is not ready yet. If you don’t need it, remove the parts related to python.

Update ARG Xyce="ADD HERE THE VERSION" with the last part of the link. I have not added the link as the user should register before download and I don’t know it is ok to add it as an hardlink.
Update also ENV PATH="${PATH}:/usr/local/Xyce-Release-6.12.0-OPENSOURCE/bin"

FROM centos:latest
ARG Xyce="ADD HERE THE VERSION"

RUN \
    yum update -y &&\
    yum install -y wget &&\
    wget "https://xyce.sandia.gov/downloads/_assets/documents/Binaries/${Xyce}" &&\
    yum install -y ${Xyce} &&\
    rm -f ${Xyce} &&\
    yum install -y gcc gcc-c++ openssl-devel bzip2-devel libffi-devel freetype* make git &&\
    cd /usr/src &&\
    wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz &&\
    tar xzf Python-3.8.0.tgz &&\
    cd Python-3.8.0 &&\
    ./configure --enable-optimizations &&\
    make altinstall &&\
    rm -f /usr/src/Python-3.8.0.tgz &&\
    pip3.8 install -i https://pypi.org/simple \
    "git+https://github.com/vMeijin/pySmithPlot.git#egg=pysmithplot" \
    cycler kiwisolver matplotlib numpy pyparsing python-dateutil scipy six &&\
    yum clean all -y &&\
    mkdir sim

ENV PATH="${PATH}:/usr/local/Xyce-Release-6.12.0-OPENSOURCE/bin"

VOLUME ["/tmp", "/sim"]

WORKDIR /sim

Build the docker using

docker build -t xyce .

in the same folder.

Run it from the same folder as your netlist.net

docker run --rm -t -v "/tmp/spyce:/tmp" -v "$(pwd):/sim" -u $(id -u ${USER}):$(id -g ${USER}) xyce Xyce netlist.net
# The files in output have the same user and group of the local user

rohit yadav

unread,
Nov 12, 2019, 4:40:20 PM11/12/19
to xyce-users
Hi Alex,

Thanks for the Dockerfile. I actually use singularity (similar to docker but safer, no root) build for running binaries that I am for some reason unable to build with nix. In any case, the default binaries provided are not sufficient for my use case as I need to run with --enabled-shared option. The reason I avoid docker or any container as first preference is simply because of the latency it adds in running sims and size overhead. Thanks again for the help.

Regards,
Rohit

xyce-users

unread,
Nov 13, 2019, 12:43:54 AM11/13/19
to xyce-users
Rohit:

This evening I created an Ubuntu 19.04 virtual machine and built Xyce on it according to the Building Guide.  I was unable to reproduce your link failure.

I followed the following process (which is exactly what's in the building guide):
  • Installed required packages:
    • sudo apt install gfortran cmake make bison flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool
    • sudo apt install git automake autoconf      (extra installs needed because I'll be building from github instead of a tarball)
    • mkdir -p $HOME/XyceLibs/Serial
    • Fetch trilinos source and clone Xyce git repo into $HOME/src
    • mkdir -p $HOME/build/trilinos
      • cd $HOME/build/trilinos
      • Copy attached trilinos reconfigure into this directory
      • chmod u+x ubu19.04_trilinos_reconfigure
      • ./ubu19.04_trilinos_reconfigure
      • make -j2 && make install
    • mkdir -p $HOME/build/Xyce
      • cd $HOME/build/Xyce
      • copy attached Xyce reconfigure into this directory
      • chmod u+x ubu19.04_xyce_reconfigure
      • make -j2
The Xyce reconfigure uses -O0 because I only created a 2-core virtual machine and wanted the compilation to complete in something other than geologic timescales.  It compiled and linked just fine.

I can only conclude that there is something in your nix build process that is causing other issues.  Did you experience the same link failure when building outside of nix?

I do note that on Ubuntu 19.04, the Trilinos build detects a "new" lapack (as installed by apt) with a function dggsvd3_ (or sggsvd3_) instead of dggsvd_ (or sggsvd3_), and that Epetra has ifdefs that depend on whether it it found the SVD3 or SVD version.  Your link failure suggests that the build of Trilinos you're trying to link into Xyce has Epetra that thinks it found dggsvd_, but in fact your lapack has dggsvd3_.  Not sure how that could have happened, nor have I any information I can use to make any guess.

ubu19.04_trilinos_reconfigure
ubu19.04_xyce_reconfigure
Reply all
Reply to author
Forward
0 new messages