________________________________
> From: harroontheg...@gmail.com
> Date: Tue, 9 Aug 2016 13:33:15 -0700
> Subject: Re: [Libmesh-users] FW: libmesh problem: libmesh_nullptr was
> not declared in scope
> To: marchy...@hotmail.com
> CC: royst...@ices.utexas.edu; libmesh-users@lists.sourceforge.net
>
>>I ran make -n example-opt in the section of examples on
> eigenproblems_ex2, made a copy of eigenproblems_ex2,>changed the name
> of the original eigenproblems_ex2 to realeigenproblems_ex2, and put my
> .C file in the new folder called>eigenproblems_ex2 in , deleting the
> old .C file that was there (I changed the name of my .C file to
> eigenproblems_ex2.C). I>then tried running the code that I obtained as
> output from make -n example-opt and obtained the following responses:
>
> The response is different now since it turned out I accidentally had
> the original .C file still in this one so I moved my .C file in and got
> a different series of errors.
Well, I did not mean a literal copy you need to make some changes. I ended up
with stuff like this and probably changed LD_LIBRARY_PATH too,
LMDIR="/home/marchywka/d/libmesh/libmesh-1.0.0"
CDIR="$LMDIR/contrib"
MDIR="/home/marchywka/d/jdft/jdftx/svn/cpp"
CINCLUDES=" -I$MDIR -I$CDIR/nanoflann/include -I$CDIR/fparser
-I$CDIR/libHilbert/include -I$CDIR/exodusii/v5.22/exodus/cbind/include
-I$CDIR/netcdf/v4/include -I$CDIR/eigen/eigen -I$CDIR/gmv
-I$CDIR/qhull/qhull/src -I$CDIR/qhull/qhull/src/libqhull
-I$CDIR/qhull/qhull/src/libqhullcpp -I$CDIR/metis/include
-I$CDIR/tecplot/tecio/include -I$CDIR/gzstream "
INCLUDES="-I$MDIR -I. -I$LMDIR/include -DNDEBUG -I/usr/local/include/vtk-7.0
-pthread -I/usr/include -I$LMDIR/include $CINCLUDES "
CFLAGS=" -std=gnu++11 -O2 -felide-constructors -funroll-loops -fstrict-aliasing
-Wdisabled-optimization -fopenmp -std=gnu++11 "
g++ -DHAVE_CONFIG_H $INCLUDES $CFLAGS -c $f -o $objx
LTFLAGS=" --silent --tag=CXX --mode=link g++ -std=gnu++11 -O2
-felide-constructors -funroll-loops -fstrict-aliasing -Wdisabled-optimization
-fopenmp -std=gnu++11 "
LTVTKLIBS=" $LMDIR/libmesh_opt.la -lvtkIOCore-7.0 -lvtkCommonCore-7.0
-lvtkCommonDataModel-7.0 -lvtkFiltersCore-7.0 -lvtkIOXML-7.0
-lvtkImagingCore-7.0 -lvtkIOImage-7.0 -lvtkImagingMath-7.0
-lvtkIOParallelXML-7.0"
LTMISC=" -lz -Wl,-rpath,/usr/lib -L/usr/lib"
/bin/bash $LMDIR/libtool $LTFLAGS -o $nm $obj $LTVTKLIBS $LTMISC
>
> On Tue, Aug 9, 2016 at 12:54 PM, Harry Pearce
> <harroontheg...@gmail.com<mailto:harroontheg...@gmail.com>> wrote:
>
> The program I ran wasn't in the libmesh directory when I ran it. I just
> compiled it with:
>
> mpicxx -o HPeigenproblems_PZ_8_2_16_2 HPeigenproblems_PZ_8_2_16_2.C
> -lz -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lmesh_opt
> -I/usr/local/include -pthread -I/usr/local/include -std=gnu++11 -O2
> -felide-constructors -funroll-loops -fstrict-aliasing
> -Wdisabled-optimization -fopenmp
>
> So I would think this would mean that libmesh could still have SLEPc.
> Additionally I looked in the configure.log file within
> libmesh-1.0.0-rc1 and it didn't look like SLEPc was missing. The real
> example files (The ones that came with libmesh) ran fine.
>
> I ran make -n example-opt in the section of examples on
> eigenproblems_ex2, made a copy of eigenproblems_ex2, changed the name
> of the original eigenproblems_ex2 to realeigenproblems_ex2, and put my
> .C file in the new folder called eigenproblems_ex2 in , deleting the
> old .C file that was there (I changed the name of my .C file to
> eigenproblems_ex2.C). I then tried running the code that I obtained as
> output from make -n example-opt and obtained the following responses:
>
> My input:
> /opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_ex2$ sudo
> echo " CXX " example_opt-eigenproblems_ex2.o;mpicxx
> -DHAVE_CONFIG_H -I. -I../../../include -DNDEBUG
> -I/opt/slepc-3.7.0/include
> -I/opt/slepc-3.7.0/arch-linux2-c-debug/include
> -I/opt/petsc-3.7.1/include
> -I/opt/petsc-3.7.1/arch-linux2-c-debug/include -I/usr/include/mpich
> -I/usr/local/include -I../../../include
> -I../../../contrib/nanoflann/include -I../../../contrib/fparser
> -I../../../contrib/libHilbert/include
> -I../../../contrib/nemesis/v5.22/nemesis
> -I../../../contrib/exodusii/v5.22/exodus/cbind/include
> -I../../../contrib/netcdf/v4/include -I../../../contrib/eigen/eigen
> -I../../../contrib/gmv -I../../../contrib/qhull/qhull/src
> -I../../../contrib/qhull/qhull/src/libqhull
> -I../../../contrib/qhull/qhull/src/libqhullcpp
> -I../../../contrib/parmetis/include -I../../../contrib/metis/include
> -I../../../contrib/gzstream -std=gnu++11 -O2 -felide-constructors
> -funroll-loops -fstrict-aliasing -Wdisabled-optimization -fopenmp
> -std=gnu++11 -MT example_opt-eigenproblems_ex2.o -MD -MP -MF
> .deps/example_opt-eigenproblems_ex2.Tpo -c -o
> example_opt-eigenproblems_ex2.o `test -f 'eigenproblems_ex2.C' || echo
> './'`eigenproblems_ex2.C
> CXX example_opt-eigenproblems_ex2.o
> eigenproblems_ex2.C:18:21: fatal error: nr3.h: No such file or directory
> #include "nr3.h"
> ^
> compilation terminated.
> hpearce@islands:/opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_ex2$
>
> mv -f .deps/example_opt-eigenproblems_ex2.Tpo
> .deps/example_opt-eigenproblems_ex2.Po
> mv: cannot stat ‘.deps/example_opt-eigenproblems_ex2.Tpo’: No such file
> or directory
> hpearce@islands:/opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_ex2$
>
> rm -f example-opt
> rm: cannot remove ‘example-opt’: Permission denied
> hpearce@islands:/opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_ex2$
>
> echo " CXXLD " example-opt;/bin/bash ../../../libtool --silent
> --tag=CXX --mode=link mpicxx -std=gnu++11 -O2 -felide-constructors
> -funroll-loops -fstrict-aliasing -Wdisabled-optimization -fopenmp
> -std=gnu++11 -o example-opt example_opt-eigenproblems_ex2.o
> ../../../libmesh_opt.la<http://libmesh_opt.la> -lz
> -Wl,-rpath,/opt/slepc-3.7.0/arch-linux2-c-debug/lib
> -L/opt/slepc-3.7.0/arch-linux2-c-debug/lib -lslepc
> -L/opt/petsc-3.7.1/arch-linux2-c-debug/lib -L/lib/x86_64-linux-gnu
> -lpetsc -Wl,-rpath,/opt/petsc-3.7.1/arch-linux2-c-debug/lib -lf2clapack
> -lf2cblas -lmpichf90 -lgfortran -lquadmath -lm -lmpichcxx -lstdc++
> -Wl,-rpath,/lib/x86_64-linux-gnu -lmpich -lopa -lmpl -lrt -lcr
> -lpthread -lgcc_s -ldl -L/usr/lib/x86_64-linux-gnu
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8
> -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.8
> -Wl,-rpath,/usr/lib/x86_64-linux-gnu
> CXXLD example-opt
> rm: cannot remove 'example-opt': Permission denied
> rm: cannot remove '.libs/example-opt': Permission denied
> rm: cannot remove '.libs/lt-example-opt': Permission denied
> /usr/bin/ld: cannot open output file .libs/example-opt: Permission denied
> collect2: error: ld returned 1 exit status
>
>
>
> On Tue, Aug 9, 2016 at 10:52 AM, Mike Marchywka
> <marchy...@hotmail.com<mailto:marchy...@hotmail.com>> wrote:
>
>
>
>
> ________________________________
>> From: harroontheg...@gmail.com<mailto:harroontheg...@gmail.com>
>> Date: Tue, 9 Aug 2016 10:35:47 -0700
>> Subject: Re: [Libmesh-users] FW: libmesh problem: libmesh_nullptr was
>> not declared in scope
>> To: marchy...@hotmail.com<mailto:marchy...@hotmail.com>
>> CC: royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>;
> libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>
>
>>
>>
>>
>> Thank you for your help so far. It looks like this problem is close to
>> being finished. Your recommendation of using #include "libmesh/foo.h"
>> worked for compiling the program (I used the full path for
>> libmesh_nullptr.h in the include part and that fixed those errors) but
>> now when I run the executable I get the following error:
>>
>> ERROR: This example requires libMesh to be
>> compiled with SLEPc eigen solvers support!
>>
>> I already have SLEPc though. I would think to fix this problem I would
>> need to either add a compiler flag for SLEPc or add the program I have
>> to the example programs.
>>
>> I would think linking would work just as well as adding to my example
>> programs so I added -L/opt/slepc-3.7.0/sys
>> to the compiling command but this didn't fix the problem.
>
>
> I noticed a couple of things immediately about libmesh that were interesting.
> One was the term "exact solution" appearing almost everywhere and
> even being allowed on the command line IIRC in one case- there is
> some hope even if everything runs ok you can check the result. The other
> was the large array of build options and the checks in the examples- I
> had no idea I needed vtk for
> example of what any of the other things brought. To add these, you
> need to rebuild libmesh and reconfigure to enable if
> not found automatically. I ignore all the automake stuff, just run
> ./configure
> with the options set although make clean may help first.
>
> And again go to the examples and run make -n on any target and
> see what you get.
>
> Curious what the name collision is however. I just ran a script to find
> repeated names in my /usr/include and some occur 30 times lol.
> Using directories is probably a good idea.
>
> --- end of comments
>
>>
>>
>> Harry Pearce
>>
>>
>>
>> On Mon, Aug 8, 2016 at 11:20 AM, Mike Marchywka
>>
> <marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>>
>
> wrote:
>>
>>
>>
>>
>> ________________________________
>>> From:
> harroontheg...@gmail.com<mailto:harroontheg...@gmail.com><mailto:harroontheg...@gmail.com<mailto:harroontheg...@gmail.com>>
>
>>> Date: Mon, 8 Aug 2016 10:35:42 -0700
>>> Subject: Re: [Libmesh-users] FW: libmesh problem: libmesh_nullptr was
>>> not declared in scope
>>> To:
> marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>;
>
>>
> royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>>
>
>>> CC:
>>
> libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>>
>
>>>
>>> Oops I thought I replied to everyone.
>>>
>>>>Did it complain it can't find the header file first?
>>>
>>> It did complain about the libmesh.h header before I added the following
>>> to set my environment:
>>> export PATH=/opt/petsc-3.7.1:/opt/slepc-3.7.0:/opt/libmesh-1.0.0-rc1:$PATH
>>> export PATH=/opt/petsc-3.7.1:/opt/libmesh-1.0.0-rc1:$PATH
>>> export PATH=$PETSC_DIR/arch-linux2-c-debug:$PATH
>>> export CPATH=/opt/libmesh-1.0.0-rc1/include/libmesh/:$CPATH
>>
>> without the libmesh dir on the include it could be a name collision.
>> There is probably some way to get the compiler to tell you which dir
>> it includes from. Also you can get all of include paths, use "find" or
>> something and check for duplicate header names.
>>
>> The examples inlcuded "libmesh/foo.h" which is probably a good idea
>> to stick with although maybe someone who has used it more can comment :)
>>
>>
>>>
>>>>if you run "make -n example-opt" and copy the output it should work
>>>
>>> I tried running that command in the directory where my example program
>>> is and it said
>>> "make: *** No rule to make target `example-opt'. Stop."
>>
>> Well, the idea was using the makefile for a working example.
>> Maybe I mistyped the target name but you can look through the
>> examples.
>>
>>>
>>>
>>>
>>>>although without the libmesh dir in the includes I guess you would have
>>>>to add it to the include paths.
>>> libmesh.h is in the includes file.
>>>
>>> I still have the question about how to add my example file to the
>>>
> configure.ac<http://configure.ac><http://configure.ac><http://configure.ac>
> file in the
>> section AC_CONFIG_FILES
>>> since it's required in order to add a new example file according to
>>> https://github.com/libMesh/libmesh/wiki/Adding-a-new-example. If you
>>> don't know how to add the example to the AC_CONFIG_FILES (for example
>>> do I add the directory of the Makefile I want to create in it?) Is
>>> there another potential way to compile my program? I did try editing
>>> the example makefile to include the directory of my project under
>>> SUBDIRS but when I tried to run the makefile the compiler said:
>>
>> What are you using for a makefile now? I'm not sure this is even relevant
>> for what you are doing. Getting your code to compile AFAICT is a standalone
>> activity that will just need libmesh include files and libs for linking.
>>
>> --- end of new comments ---
>>
>>>
>>> Making all in eigenproblems/eigenproblems_femviblibtests_ex1
>>> make[1]: Entering directory
>>>
>>
> `/opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_femviblibtests_ex1'
>
>>> make[1]: *** No rule to make target `all'. Stop.
>>> make[1]: Leaving directory
>>>
>>
> `/opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_femviblibtests_ex1'
>
>>> make: *** [all-recursive] Error 1
>>>
>>> On Mon, Aug 8, 2016 at 10:34 AM, Harry Pearce
>>>
>>
> <harroontheg...@gmail.com<mailto:harroontheg...@gmail.com><mailto:harroontheg...@gmail.com<mailto:harroontheg...@gmail.com>><mailto:harroontheg...@gmail.com<mailto:harroontheg...@gmail.com><mailto:harroontheg...@gmail.com<mailto:harroontheg...@gmail.com>>>>
>
>> wrote:
>>>>Did it complain it can't find the header file first?
>>>
>>> It did complain about the libmesh.h header before I added the following
>>> to set my environment:
>>> export PATH=/opt/petsc-3.7.1:/opt/slepc-3.7.0:/opt/libmesh-1.0.0-rc1:$PATH
>>> export PATH=/opt/petsc-3.7.1:/opt/libmesh-1.0.0-rc1:$PATH
>>> export PATH=$PETSC_DIR/arch-linux2-c-debug:$PATH
>>> export CPATH=/opt/libmesh-1.0.0-rc1/include/libmesh/:$CPATH
>>>
>>>>if you run "make -n example-opt" and copy the output it should work
>>>
>>> I tried running that command in the directory where my example program
>>> is and it said
>>> "make: *** No rule to make target `example-opt'. Stop."
>>>
>>>
>>>
>>>>although without the libmesh dir in the includes I guess you would have
>>>>to add it to the include paths.
>>> libmesh.h is in the includes file.
>>>
>>> I still have the question about how to add my example file to the
>>>
> configure.ac<http://configure.ac><http://configure.ac><http://configure.ac>
> file in the
>> section AC_CONFIG_FILES
>>> since it's required in order to add a new example file according to
>>> https://github.com/libMesh/libmesh/wiki/Adding-a-new-example. If you
>>> don't know how to add the example to the AC_CONFIG_FILES (for example
>>> do I add the directory of the Makefile I want to create in it?) Is
>>> there another potential way to compile my program? I did try editing
>>> the example makefile to include the directory of my project under
>>> SUBDIRS but when I tried to run the makefile the compiler said:
>>>
>>> Making all in eigenproblems/eigenproblems_femviblibtests_ex1
>>> make[1]: Entering directory
>>>
>>
> `/opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_femviblibtests_ex1'
>
>>> make[1]: *** No rule to make target `all'. Stop.
>>> make[1]: Leaving directory
>>>
>>
> `/opt/libmesh-1.0.0-rc1/examples/eigenproblems/eigenproblems_femviblibtests_ex1'
>
>>> make: *** [all-recursive] Error 1
>>>
>>> Harry Pearce
>>>
>>>
>>> On Fri, Aug 5, 2016 at 2:32 PM, Mike Marchywka
>>>
>>
> <marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>>>
>
>> wrote:
>>>
>>>
>>>
>>> Did it complain it can't find the header file first?
>>> My includes for libmesh all start libmesh/foo.h
>>>
>>> if you run "make -n example-opt" and copy the output it should work
>>> although without the libmesh dir in the includes I guess you would have
>>> to add it to the include paths.
>>>
>>>
>>> ________________________________
>>>> From:
>>
> harroontheg...@gmail.com<mailto:harroontheg...@gmail.com><mailto:harroontheg...@gmail.com<mailto:harroontheg...@gmail.com>><mailto:harroontheg...@gmail.com<mailto:harroontheg...@gmail.com><mailto:harroontheg...@gmail.com<mailto:harroontheg...@gmail.com>>>
>
>>>> Date: Fri, 5 Aug 2016 14:07:58 -0700
>>>> Subject: Re: [Libmesh-users] FW: libmesh problem: libmesh_nullptr was
>>>> not declared in scope
>>>> To:
>>
> marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>>
>
>>>> CC:
>>
> royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>>>;
>
>>>
>>
> libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>>>
>
>>>>
>>>>>"I skimmed most of the messages and it did sound like it would be
>> something
>>>>>easy to find by looking at the exact code so I was a bit surprised
>>>> with that last post :)"
>>>>
>>>> Just in case it is something easy to spot I have the code at the bottom
>>>> of the email highlighted. If you don't need the code you can just
>>>> ignore the highlighted part of the email.
>>>>
>>>>>The linking is a bit unorthodox, indeed I think you had some specific
>>>>>recommendations for linking to libmesh that hid most of the details, but
>>>>>actually building it and compiling with it were pretty easy. I turned
>>>> on some debug info
>>>>>from the example make script, just copied its invokation of g++ and
>> libtool
>>>>>and that seems to work for some simple case.
>>>>
>>>> This is my first time compiling a libmesh code so I tried to figure out
>>>> what compiler flags to use in the suggested manner
>>>> for simple codes (according to
>>>> http://libmesh.github.io/installation.html) which is libmesh-config
>>>> --cxx` -o HPeigenproblems_PZ_8_2_16_2 HPeigenproblems_PZ_8_2_16_2.C
>>>> `libmesh-config --cxxflags --include --ldflags --libs`.
>>>>
>>>> This is my first time compiling a libmesh code so I thought maybe I
>>>> should use a Makefile.am from a regular libmesh example.
>>>> (My other example files compiled properly) so I was thinking that it
>>>> might work to follow the instructions for adding a new libmesh example
>>>> (https://github.com/libMesh/libmesh/wiki/Adding-a-new-example) which
>>>> invoves changing the Makefile.am and run.sh from another example file
>>>> to run the program.
>>>>
>>>> I started following the directions for adding a new example and am not
>>>> sure what line to put into AC_CONFIG_FILES in
>>>>
>>
> configure.ac<http://configure.ac><http://configure.ac><http://configure.ac><http://configure.ac>
>
>> at the top
>>> level of libmesh. I would
>>>> have thought it would have been the directory of the example file I am
>>>> adding or the Makefile that goes with it but I do not see the
>>>> directories of any other example programs in AC_CONFIG_FILES within the
>>>>
>>
> configure.ac<http://configure.ac><http://configure.ac><http://configure.ac><http://configure.ac>
>
>> program.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Harry Pearce
>>>>
>>>> Just in case highlighting doesn't show up on the libmesh users archive,
>>>> the highlighted code is below:
>>>> #include <fstream>
>>>> #include "libmesh.h"
>>>> #include "mesh.h"
>>>> #include "libmesh_config.h"
>>>> //#include "mesh_generation.h"
>>>> // #include "exodusII_io.h"
>>>> #include "eigen_system.h"
>>>> #include "equation_systems.h"
>>>> // #include "fe.h"
>>>> // #include "quadrature_gauss.h"
>>>> // #include "dense_matrix.h"
>>>> // #include "sparse_matrix.h"
>>>> // #include "numeric_vector.h"
>>>> // #include "dof_map.h"
>>>> #include "libmesh_nullptr.h"
>>>> #include <string.h>
>>>> // #include "parallel_algebra.h"
>>>> //#include "parallel.h"
>>>> //#include <auto_ptr.h>
>>>>
>>>>
>>>> using namespace libMesh;
>>>>
>>>> char prefix[80];
>>>>
>>>> void assemble_mass(EquationSystems& es,
>>>>
>>>> const std::string& system_name);
>>>>
>>>> int main (int argc, char** argv)
>>>>
>>>> {
>>>>
>>>> LibMeshInit init (argc, argv);
>>>>
>>>> #ifndef LIBMESH_HAVE_SLEPC
>>>>
>>>> if (libMesh::processor_id() == 0)
>>>>
>>>> std::cerr << "ERROR: This example requires libMesh to be\n"
>>>>
>>>> << "compiled with SLEPc eigen solvers support!"
>>>>
>>>> << std::endl;
>>>>
>>>> return 0;
>>>>
>>>> #else
>>>>
>>>> #ifdef LIBMESH_DEFAULT_SINGLE_PRECISION
>>>>
>>>> libmesh_example_assert(false, "--disable-singleprecision");
>>>>
>>>> #endif
>>>>
>>>> if (argc < 3)
>>>>
>>>> {
>>>>
>>>> if (libMesh::processor_id() == 0)
>>>>
>>>> std::cerr << "\nUsage: " << argv[0]
>>>>
>>>> << " -n <number of eigen values>"
>>>>
>>>> << std::endl;
>>>>
>>>> libmesh_error();
>>>>
>>>> }
>>>>
>>>>
>>>>
>>>> else
>>>>
>>>> {
>>>>
>>>> std::cout << "Running " << argv[0];
>>>>
>>>>
>>>>
>>>> for (int i=1; i<argc; i++)
>>>>
>>>> std::cout << " " << argv[i];
>>>>
>>>>
>>>>
>>>> std::cout << std::endl << std::endl;
>>>>
>>>> }
>>>>
>>>> const unsigned int nev = std::atoi(argv[2]);
>>>>
>>>> // libmesh_example_assert(3 <= LIBMESH_DIM, "2D support");
>>>>
>>>>
>>>>
>>>> Mesh mesh;
>>>>
>>>> MeshTools::Generation::build_cube (mesh,
>>>>
>>>> 10, 10, 10,
>>>>
>>>> -1., 1.,
>>>>
>>>> -1., 1.,
>>>>
>>>> -1., 1.,
>>>>
>>>> HEX27);
>>>>
>>>> mesh.print_info();
>>>>
>>>>
>>>>
>>>> char xyzfilename[80];
>>>>
>>>> strcpy(prefix,argv[3]);
>>>>
>>>> strcpy(xyzfilename,argv[3]);
>>>>
>>>> strcat(xyzfilename,".xyz");
>>>>
>>>> std::cout << "Writing nodal xyz coordinates to file: " <<
>>>> xyzfilename << std::endl;
>>>>
>>>> std::ofstream xyzfile;
>>>>
>>>> xyzfile.open (xyzfilename);
>>>>
>>>> MeshBase::const_node_iterator node_it = mesh.nodes_begin();
>>>>
>>>>
>>>>
>>>>
>>>> const MeshBase::const_node_iterator node_end = mesh.nodes_end();
>>>>
>>>> xyzfile << "Number of nodes: " << mesh.n_nodes() << "\n";
>>>>
>>>> for (; node_it != node_end; ++node_it)
>>>>
>>>> {
>>>>
>>>> //count++;
>>>>
>>>> const Point& p = **node_it;
>>>>
>>>> const Real px = p(0);
>>>>
>>>> const Real py = p(1);
>>>>
>>>> xyzfile << px << " " << py << " \n";
>>>>
>>>> }
>>>>
>>>> xyzfile.close();
>>>>
>>>> std::cout << "Finished writing nodal xyz coordinates to file: " <<
>>>> xyzfilename << std::endl;
>>>>
>>>>
>>>> EquationSystems equation_systems (mesh);
>>>>
>>>> EigenSystem & eigen_system =
>>>>
>>>> equation_systems.add_system<EigenSystem> ("Eigensystem");
>>>>
>>>>
>>>>
>>>>
>>>> eigen_system.add_variable("u", SECOND);
>>>>
>>>> eigen_system.attach_assemble_function (assemble_mass);
>>>>
>>>>
>>>
>>
> equation_systems.parameters.se<http://equation_systems.parameters.se><http://equation_systems.parameters.se><http://equation_systems.parameters.se>t<unsigned
>
>>> int>("eigenpairs") = nev;
>>>>
>>>>
>>>
>>
> equation_systems.parameters.se<http://equation_systems.parameters.se><http://equation_systems.parameters.se><http://equation_systems.parameters.se>t<unsigned
>
>>> int>("basis vectors") = nev*3;
>>>>
>>>> eigen_system.eigen_solver->set_eigensolver_type(KRYLOVSCHUR);
>>>>
>>>> // eigen_system.eigen_solver->set_eigensolver_type(LAPACK);
>>>>
>>>> eigen_system.eigen_solver->set_position_of_spectrum(SMALLEST_REAL);
>>>>
>>>>
>>>
>>
> equation_systems.parameters.se<http://equation_systems.parameters.se><http://equation_systems.parameters.se><http://equation_systems.parameters.se>t<Real>("linear
>
>>> solver tolerance") =
>>>> pow(TOLERANCE, 5./3.);
>>>>
>>>>
>>>
>>
> equation_systems.parameters.se<http://equation_systems.parameters.se><http://equation_systems.parameters.se><http://equation_systems.parameters.se>t<unsigned
>
>>> int>
>>>>
>>>> ("linear solver maximum iterations") = 1000;
>>>>
>>>> eigen_system.set_eigenproblem_type(GHEP);
>>>>
>>>> equation_systems.init();
>>>>
>>>> equation_systems.print_info();
>>>>
>>>>
>>>>
>>>> eigen_system.solve();
>>>>
>>>> unsigned int nconv = eigen_system.get_n_converged();
>>>>
>>>> std::cout << "Number of converged eigenpairs: " << nconv
>>>>
>>>> << "\n" << std::endl;
>>>>
>>>> if (nconv != 0)
>>>>
>>>> {
>>>>
>>>> eigen_system.get_eigenpair(nconv-1);
>>>>
>>>>
>>>>
>>>> #ifdef LIBMESH_HAVE_EXODUS_API
>>>>
>>>> ExodusII_IO (mesh).write_equation_systems ("out.e", equation_systems);
>>>>
>>>> #endif // #ifdef LIBMESH_HAVE_EXODUS_API
>>>>
>>>> }
>>>>
>>>> else
>>>>
>>>> {
>>>>
>>>> std::cout << "WARNING: Solver did not converge!\n" << nconv <<
>>>> std::endl;
>>>>
>>>> }
>>>>
>>>> #endif // LIBMESH_HAVE_SLEPC
>>>>
>>>> return 0;
>>>>
>>>> }
>>>>
>>>> void assemble_mass(EquationSystems& es,
>>>>
>>>> const std::string& system_name)
>>>>
>>>> {
>>>>
>>>> char potfilename[80];
>>>>
>>>> strcpy(potfilename,prefix);
>>>>
>>>> strcat(potfilename,".pot.out");
>>>>
>>>> std::fstream potfile;
>>>>
>>>> potfile.open(potfilename, std::ios::out);
>>>>
>>>> if(!potfile) {std::cerr << "Error opening PES output file."; return;}
>>>>
>>>> libmesh_assert (system_name == "Eigensystem");
>>>>
>>>> #ifdef LIBMESH_HAVE_SLEPC
>>>>
>>>> const MeshBase& mesh = es.get_mesh();
>>>>
>>>> const unsigned int dim = mesh.mesh_dimension();
>>>>
>>>> EigenSystem & eigen_system = es.get_system<EigenSystem> (system_name);
>>>>
>>>> FEType fe_type = eigen_system.get_dof_map().variable_type(0);
>>>>
>>>> SparseMatrix<Number>& matrix_A = *eigen_system.matrix_A;
>>>>
>>>> SparseMatrix<Number>& matrix_B = *eigen_system.matrix_B;
>>>>
>>>> AutoPtr<FEBase> fe (FEBase::build(dim, fe_type));
>>>>
>>>> QGauss qrule (dim, fe_type.default_quadrature_order());
>>>>
>>>> fe->attach_quadrature_rule (&qrule);
>>>>
>>>> const std::vector<Real>& JxW = fe->get_JxW();
>>>>
>>>> const std::vector<Point>& q_point = fe->get_xyz();
>>>>
>>>> const std::vector<std::vector<Real>>& phi = fe->get_phi();
>>>>
>>>> const std::vector<std::vector<RealGradient>>& dphi = fe->get_dphi();
>>>>
>>>> const DofMap& dof_map = eigen_system.get_dof_map();
>>>>
>>>> DenseMatrix<Number> Me;
>>>>
>>>> DenseMatrix<Number> Ke;
>>>>
>>>> std::vector<unsigned int> dof_indices;
>>>>
>>>> MeshBase::const_element_iterator el =
>>>> mesh.active_local_elements_begin();
>>>>
>>>> const MeshBase::const_element_iterator end_el =
>>>> mesh.active_local_elements_end();
>>>>
>>>>
>>>>
>>>> std::cout << "Writing PES data to file: " << potfilename << std::endl;
>>>>
>>>> double V, gxx, gxy, gyy, gzx, gzy, gzz;
>>>>
>>>> for ( ; el != end_el; ++el)
>>>>
>>>> {
>>>>
>>>> const Elem* elem = *el;
>>>>
>>>> dof_map.dof_indices (elem, dof_indices);
>>>>
>>>> fe->reinit (elem);
>>>>
>>>> Ke.resize (dof_indices.size(), dof_indices.size());
>>>>
>>>> Me.resize (dof_indices.size(), dof_indices.size());
>>>>
>>>> for (unsigned int qp=0; qp<qrule.n_points(); qp++)
>>>>
>>>> {
>>>>
>>>> const double x = q_point[qp](0);
>>>>
>>>> const double y = q_point[qp](1);
>>>>
>>>> const double z = q_point[qp](2);
>>>>
>>>> /*
>>>>
>>>> Doub potpoint(ndim);
>>>>
>>>> potpoint[0] = x;
>>>>
>>>> potpoint[1] = y;
>>>>
>>>> potpoint[2] = z;
>>>>
>>>> */
>>>>
>>>> V=x*x + y*y + z*z;
>>>>
>>>> gxx=0.10;
>>>>
>>>> gyy=1.20;
>>>>
>>>> gxy=1.10;
>>>>
>>>> gzx=0.003;
>>>>
>>>> gzy=0.40;
>>>>
>>>> gzz=0.50;
>>>>
>>>>
>>>> potfile << x << '\t' << y << '\t' << z << '\t' << V << '\t' << "\n";
>>>>
>>>>
>>>> /*
>>>>
>>>> const Elem* elem = *el;
>>>>
>>>> dof_map.dof_indices (elem, dof_indices);
>>>>
>>>> fe->reinit (elem);
>>>>
>>>> Ke.resize (dof_indices.size(), dof_indices.size());
>>>>
>>>> Me.resize (dof_indices.size(), dof_indices.size());
>>>>
>>>> */
>>>>
>>>> // for (unsigned int qp=0; qp<qrule.n_points(); qp++)
>>>>
>>>> for (unsigned int i=0; i<phi.size(); i++)
>>>>
>>>> for (unsigned int j=0; j<phi.size(); j++)
>>>>
>>>> {
>>>>
>>>>
>>>> Ke(i,j) += JxW[qp]*(
>>>>
>>>> 0.5*( gxx*dphi[i][qp](0)*dphi[j][qp](0)
>>>>
>>>> + gyy*dphi[i][qp](1)*dphi[j][qp](1)
>>>>
>>>> + gzz*dphi[i][qp](2)*dphi[j][qp](2)
>>>>
>>>> + gxy*dphi[i][qp](0)*dphi[j][qp](1)
>>>>
>>>> + gxy*dphi[i][qp](1)*dphi[j][qp](0)
>>>>
>>>> + gzx*dphi[i][qp](0)*dphi[j][qp](2)
>>>>
>>>> + gzx*dphi[i][qp](2)*dphi[j][qp](0)
>>>>
>>>> + gzy*dphi[i][qp](1)*dphi[j][qp](2)
>>>>
>>>> + gzy*dphi[i][qp](2)*dphi[j][qp](1)
>>>>
>>>> // + dgxxdx*dphi[i][qp](0)
>>>>
>>>> // + dgyydy*dphi[i][qp](1)
>>>>
>>>> // + dgzzdz*dphi[i][qp](2)
>>>>
>>>> // + dgxydx*dphi[i][qp](1)
>>>>
>>>> // + dgxydy*dphi[i][qp](0)
>>>>
>>>> // + dgxzdx*dphi[i][qp](2)
>>>>
>>>> // + dgzxdz*dphi[i][qp](0)
>>>>
>>>> // + dgyzdy*dphi[i][qp](2)
>>>>
>>>> // + dgzydz*dphi[i][qp](1)
>>>>
>>>> )*33.71526 + V*phi[i][qp]*phi[j][qp]);
>>>>
>>>>
>>>>
>>>> Me(i,j) += JxW[qp]*phi[i][qp]*phi[j][qp];
>>>>
>>>> }
>>>>
>>>> matrix_A.add_matrix (Ke, dof_indices);
>>>>
>>>> matrix_B.add_matrix (Me, dof_indices);
>>>>
>>>> }
>>>>
>>>> } // end of element loop
>>>>
>>>> std::cout << "Finished writing PES data to file: " << potfilename
>>>> << std::endl;
>>>>
>>>> potfile.close();
>>>>
>>>> std::cout << "Matrix A assembly completed! " << "\n" << std::endl;
>>>>
>>>> std::cout << "Matrix B assembly completed! " << "\n" << std::endl;
>>>>
>>>> std::cout << "Exporting Matrix A in matlab sparse matrix format...
>>>> " << "\n" << std::endl;
>>>>
>>>> char buf1[14];
>>>>
>>>> sprintf (buf1, "A.m");
>>>>
>>>> matrix_A.print_matlab(buf1);
>>>>
>>>> std::cout << "Matrix A Exported! " << "\n" << std::endl;
>>>>
>>>> // matrix_A.clear();
>>>>
>>>> std::cout << "Matrix A Cleared from Memory! " << "\n" << std::endl;
>>>>
>>>> std::cout << "Exporting Matrix B in matlab sparse matrix format...
>>>> " << "\n" << std::endl;
>>>>
>>>> char buf2[14];
>>>>
>>>> sprintf (buf2, "B.m");
>>>>
>>>> matrix_B.print_matlab(buf2);
>>>>
>>>> std::cout << "Matrix B Exported! " << "\n" << std::endl;
>>>>
>>>> // matrix_B.clear();
>>>>
>>>> std::cout << "Matrix B Cleared from Memory! " << "\n" << std::endl;
>>>>
>>>> #endif // LIBMESH_HAVE_SLEPC
>>>>
>>>> /**
>>>>
>>>> * All done!
>>>>
>>>> */
>>>>
>>>> return;
>>>>
>>>> On Thu, Aug 4, 2016 at 5:41 PM, Mike Marchywka
>>>>
>>>
>>
> <marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>>>>
>
>>> wrote:
>>>>
>>>>
>>>>
>>>>
>>>> ----------------------------------------
>>>>> Date: Thu, 4 Aug 2016 19:11:03 -0500
>>>>> From:
>>>
>>
> royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>>><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu><mailto:royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>>>>
>
>>>>> To:
>>>
>>
> marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:marchy...@hotmail.com<mailto:marchy...@hotmail.com>>>>
>
>>>>> CC:
>>>>
>>>
>>
> libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>>><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net><mailto:libmesh-users@lists.sourceforge.net<mailto:libmesh-users@lists.sourceforge.net>>>>
>
>>>>> Subject: Re: [Libmesh-users] FW: libmesh problem: libmesh_nullptr was
>>>> not declared in scope
>>>>>
>>>>>
>>>>>
>>>>> On Thu, 4 Aug 2016, Mike Marchywka wrote:
>>>>>
>>>>>>> I have not followed the exchange but sometimes I end up including
>>>> headers within a namespace or
>>>>>>> something. Is libmesh being included within something? Not sure
>>>> what that does with some
>>>>>>> macros and others not lol.
>>>>>
>>>>> That was my first guess, too! That's actually why I was asking about
>>>>> the config macros - if he was in the nullptr-workaround case, then
>>>>> accidentally including a libMesh header within a namespace would have
>>>>> exactly the effect seen: the class we define wouldn't exist in the
>>>>> global namespace and the compiler wouldn't recognize it.
>>>>
>>>> I skimmed most of the messages and it did sound like it would be
> something
>>>> easy to find by looking at the exact code so I was a bit surprised with
>>>> that last post :)
>>>>
>>>> For problems in unfamiliar code grep can be amazingly
>>>> useful even if you expect 1000's of hits they usually end up being easy
>>>> to sort out.
>>>>
>>>> The linking is a bit unorthodox, indeed I think you had some specific
>>>> recommendations for linking to libmesh that hid most of the details, but
>>>> actually building it and compiling with it were pretty easy. I turned
>>>> on some debug info
>>>> from the example make script, just copied its invokation of g++ and
>> libtool
>>>> and that seems to work for some simple case.
>>>>
>>>>
>>>>
>>>>
>>>>> ---
>>>>> Roy
>>>>
>>>>
>>>
>>
> ------------------------------------------------------------------------------
>
>>>> _______________________________________________
>>>> Libmesh-users mailing list
>>>>
>>>
>>
> Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net><mailto:Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net>><mailto:Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net><mailto:Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net>>><mailto:Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net><mailto:Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net>><mailto:Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net><mailto:Libmesh-users@lists.sourceforge.net<mailto:Libmesh-users@lists.sourceforge.net>>>>
>
>>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>>>>
>>>
>>>
>>>
>>
>>
>
>
>
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. http://sdm.link/zohodev2dev
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users