You need to spend some time updating your code. Many of these changes
occurred more than a one to two years ago. The fixes are generally small.
Just use the current examples to get your old example back in line.
Just to get started, libMesh has a communicator class so that you can split
communicators and not necessarily work with just the global communicator so
you won't find processor_id() in a namespace any more as a result. The Mesh
constructors was changed a few years ago. AutoPtr is deprecated in favor of
UniquePtr, etc...

Mike, UniquePtr is actually quite nice! You can't accidentally assign a
UniquePtr resulting in having the resource stolen like you could freely do
with AutoPtr. Overall these changes shouldn't be viewed on as "bad", these
are positive changes that reflect new capabilities and feature evolution of
the project.

On Tue, Aug 16, 2016 at 12:19 PM Harry Pearce <[email protected]>
wrote:

> >Again, I would not worry about adding an example but rather just try
> >to build and test standalone. I just reinstalled libmesh adding petsc
> >and other things, repeated the process of running "make -n example-opt"
> >and extracting the compile and link lines and it seems to work ok,
>
> I was wondering if you tried that with my code. I tried to use the output
> and named my file by the same name but errors appeared. I also tried using
> the compile and link lines and errors seemed to appear. As a test I tried
> running the make example-opt on an example that I added a comment line to
> (so it would know there was a change in the .C file and recompile the
> example-opt program and that worked fine. When I used my .C program instead
> (which I named eigenproblems_ex2.C and put in the eigenprobmes_ex2.C
> example folder) and ran make example-opt errors appeared. These errors are:
>
>
>   CXX      example_opt-eigenproblems_ex2.o
> eigenproblems_ex2.C: In function ‘int main(int, char**)’:
> eigenproblems_ex2.C:44:13: error: ‘processor_id’ is not a member of
> ‘libMesh’
>          if (libMesh::processor_id() == 0)
>              ^
> eigenproblems_ex2.C:65:10: error: no matching function for call to
> ‘libMesh::Mesh::Mesh()’
>      Mesh mesh;
>           ^
> eigenproblems_ex2.C:65:10: note: candidates are:
> In file included from eigenproblems_ex2.C:3:0:
> ../../../include/libmesh/mesh.h:75:3: note: libMesh::Mesh::Mesh(const
> libMesh::UnstructuredMesh&)
>    Mesh (const UnstructuredMesh & other_mesh) : DefaultMesh(other_mesh) {}
>    ^
> ../../../include/libmesh/mesh.h:75:3: note:   candidate expects 1 argument,
> 0 provided
> ../../../include/libmesh/mesh.h:56:3: note: libMesh::Mesh::Mesh(const
> libMesh::Parallel::Communicator&, unsigned char)
>    Mesh (const Parallel::Communicator & comm_in,
>    ^
> ../../../include/libmesh/mesh.h:56:3: note:   candidate expects 2
> arguments, 0 provided
> ../../../include/libmesh/mesh.h:46:7: note: libMesh::Mesh::Mesh(const
> libMesh::Mesh&)
>  class Mesh : public DefaultMesh
>        ^
> ../../../include/libmesh/mesh.h:46:7: note:   candidate expects 1 argument,
> 0 provided
> eigenproblems_ex2.C:93:32: error: invalid initialization of reference of
> type ‘const libMesh::Point&’ from expression of type ‘libMesh::Node’
>              const Point& p = **node_it;
>                                 ^
> eigenproblems_ex2.C: In function ‘void
> assemble_mass(libMesh::EquationSystems&, const string&)’:
> eigenproblems_ex2.C:178:52: error: no matching function for call to
> ‘libMesh::AutoPtr<libMesh::FEGenericBase<double>
> >::AutoPtr(libMesh::UniquePtr<libMesh::FEGenericBase<double> >)’
>      AutoPtr<FEBase> fe (FEBase::build(dim, fe_type));
>                                                     ^
> eigenproblems_ex2.C:178:52: note: candidates are:
> In file included from ../../../include/libmesh/parallel.h:25:0,
>                  from ../../../include/libmesh/libmesh.h:28,
>                  from eigenproblems_ex2.C:2:
> ../../../include/libmesh/auto_ptr.h:355:3: note:
> libMesh::AutoPtr<Tp>::AutoPtr(libMesh::AutoPtrRef<Tp>) [with Tp =
> libMesh::FEGenericBase<double>]
>    AutoPtr(AutoPtrRef<element_type> ref)
>    ^
> ../../../include/libmesh/auto_ptr.h:355:3: note:   no known conversion for
> argument 1 from ‘libMesh::UniquePtr<libMesh::FEGenericBase<double> > {aka
> std::unique_ptr<libMesh::FEGenericBase<double>,
> std::default_delete<libMesh::FEGenericBase<double> > >}’ to
> ‘libMesh::AutoPtrRef<libMesh::FEGenericBase<double> >’
> ../../../include/libmesh/auto_ptr.h:215:3: note: template<class Tp1>
> libMesh::AutoPtr<Tp>::AutoPtr(libMesh::AutoPtr<Tp1>&)
>    AutoPtr(AutoPtr<Tp1> & a)
>    ^
> ../../../include/libmesh/auto_ptr.h:215:3: note:   template argument
> deduction/substitution failed:
> eigenproblems_ex2.C:178:52: note:
> ‘libMesh::UniquePtr<libMesh::FEGenericBase<double> > {aka
> std::unique_ptr<libMesh::FEGenericBase<double>,
> std::default_delete<libMesh::FEGenericBase<double> > >}’ is not derived
> from ‘libMesh::AutoPtr<Tp>’
>      AutoPtr<FEBase> fe (FEBase::build(dim, fe_type));
>                                                     ^
> In file included from ../../../include/libmesh/parallel.h:25:0,
>                  from ../../../include/libmesh/libmesh.h:28,
>                  from eigenproblems_ex2.C:2:
> ../../../include/libmesh/auto_ptr.h:200:3: note:
> libMesh::AutoPtr<Tp>::AutoPtr(libMesh::AutoPtr<Tp>&) [with Tp =
> libMesh::FEGenericBase<double>]
>    AutoPtr(AutoPtr & a)
>    ^
> ../../../include/libmesh/auto_ptr.h:200:3: note:   no known conversion for
> argument 1 from ‘libMesh::UniquePtr<libMesh::FEGenericBase<double> > {aka
> std::unique_ptr<libMesh::FEGenericBase<double>,
> std::default_delete<libMesh::FEGenericBase<double> > >}’ to
> ‘libMesh::AutoPtr<libMesh::FEGenericBase<double> >&’
> ../../../include/libmesh/auto_ptr.h:185:3: note:
> libMesh::AutoPtr<Tp>::AutoPtr(libMesh::AutoPtr<Tp>::element_type*) [with Tp
> = libMesh::FEGenericBase<double>; libMesh::AutoPtr<Tp>::element_type =
> libMesh::FEGenericBase<double>]
>    AutoPtr(element_type * p = 0)
>    ^
> ../../../include/libmesh/auto_ptr.h:185:3: note:   no known conversion for
> argument 1 from ‘libMesh::UniquePtr<libMesh::FEGenericBase<double> > {aka
> std::unique_ptr<libMesh::FEGenericBase<double>,
> std::default_delete<libMesh::FEGenericBase<double> > >}’ to
> ‘libMesh::AutoPtr<libMesh::FEGenericBase<double> >::element_type* {aka
> libMesh::FEGenericBase<double>*}’
> make: *** [example_opt-eigenproblems_ex2.o] Error 1
>
>
> Also I ran make check and the examples do rerun when I do that but now when
> I do make run_examples. When I do make run_examples it looks in each
> directory but doesn't do anything other than "make all-am". Then it says
> there is nothing to do in the directory of the example and looks at the
> next example.
>
> Harry Pearce
>
> On Fri, Aug 12, 2016 at 12:48 PM, Mike Marchywka <[email protected]>
> wrote:
>
> > Again, I would not worry about adding an example but rather just try
> > to build and test standalone. I just reinstalled libmesh adding petsc
> > and other things, repeated the process of running "make -n example-opt"
> > and extracting the compile and link lines and it seems to work ok,
> >
> > Silent failures can be hard to track down. Normally, you could just
> > start in a debugger. Or, if you think you are missing a library
> > run ldd. It turns out the output of the libtool step is a script
> > that runs .libs/lt-foo. and you can run ldd on this if you want.
> >
> > If you mean it only makes once, you need to insure the dependencies
> > are right but for testing I usually just write a script that rebuilds
> > everything although checking for "newer" would not be too hard.
> >
> > Again, the compile seems normal but maybe someone could explain the
> > odd linking lol. What is the point of this?
> >
> > When I get some simple examples to work and think
> > Iunderstand FEM, I was going to link
> > to a larger program I have which uses tcl and things like jdft.
> > I have no idea how this will go but curious what you find :)
> >
> >
> >
> >
> >
> >
> > ----------------------------------------
> > > From: [email protected]
> > > Date: Fri, 12 Aug 2016 12:34:41 -0700
> > > To: [email protected]
> > > Subject: [Libmesh-users] Example files won't run a second time
> > >
> > > Hello libmesh users!,
> > > I tried to run the example programs using make run_examples but after
> the
> > > makefile descends into the individual example files it keeps saying
> > > "Nothing to be done for all-am" after trying to make all-am. It doesn't
> > try
> > > to run or modify the programs. I wanted to recompile the
> > eigenproblems_ex2
> > > with my own .C file in it instead of the one that comes with the
> > examples.
> > >
> > > I did modify the Makefile.am in the example directory, but just to add
> an
> > > example to the SUBDIRS variable, following the directions of
> > > https://github.com/libMesh/libmesh/wiki/Adding-a-new-example
> > (instructions
> > > for adding a new example program to libMesh). I changed it back though
> > and
> > > now the only difference that I know of between it and the original
> > > Makefile.am is that I commented out the members of the SUBDIRS variable
> > > other than eigenproblems_ex2 which I modified the .C file of.
> > >
> > > My Professor never used make check when downloading libmesh-1.0.0-rc1.
> > > Instead he used make run_examples.
> > >
> > > Does anyone know why the example programs aren't running (they ran the
> > > first time) and how to fix it?
> > >
> > > Thankfully,
> > > Harry Pearce
> > > ------------------------------------------------------------
> > ------------------
> > > 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
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/libmesh-users
> >
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Libmesh-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>
------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to