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.


Harry Pearce



On Mon, Aug 8, 2016 at 11:20 AM, Mike Marchywka <marchy...@hotmail.com>
wrote:

>
>
>
>
> ________________________________
> > From: 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; royst...@ices.utexas.edu
> > CC: 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> 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>> 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> 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>> 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>
> >> 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>
> >> CC: royst...@ices.utexas.edu<mailto:royst...@ices.utexas.edu>;
> > libmesh-users@lists.sourceforge.net<mailto:libmesh
> -us...@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> 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> 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
> >t<unsigned
> > int>("eigenpairs") = nev;
> >>
> >>
> > 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
> >t<Real>("linear
> > solver tolerance") =
> >> pow(TOLERANCE, 5./3.);
> >>
> >>
> > 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>>>
> > 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>>
> >>> To:
> > marchy...@hotmail.com<mailto:marchy...@hotmail.com><mailto:m
> archy...@hotmail.com<mailto:marchy...@hotmail.com>>
> >>> CC:
> >>
> > libmesh-users@lists.sourceforge.net<mailto:libmesh
> -us...@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
> -us...@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

Reply via email to