After trying to install fenics from source, now both pyhon and c++ files don't compile

357 views
Skip to first unread message

alexandermartinezmarchese

unread,
Sep 16, 2017, 6:13:01 PM9/16/17
to fenics-support
I've been trying for about a week to install fenics from source to be able to run c++ examples and now I can't even run python files I was able to run before.

My first question which I'm not 100% sure about is the following: is it possible to run c++ files using fenics binaries and the right c++ libraries (ex PETSc) installed separately?

After following the procedure in the text document, I was able to compile dolfin from source without any errors.

However ufl and ffc where not being recognized so I had to type:
sudo apt-get install python-ufl
sudo apt-get install python-ffc

But when I try running python or c++ files I get errors. Are theses errors related? Did I do anything wrong in the installation?

Then when I try running a python file I get:
Traceback (most recent call last):
  File "fmodel.py", line 11, in <module>
    from dolfin import *
  File "/usr/local/lib/python3/dist-packages/dolfin/__init__.py", line 17, in <module>
    from . import cpp
  File "/usr/local/lib/python3/dist-packages/dolfin/cpp/__init__.py", line 43, in <module>
    exec("from . import %s" % module_name)
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3/dist-packages/dolfin/cpp/common.py", line 115
    def _attach_base_to_numpy_array(obj: 'PyObject *', owner: 'PyObject *') -> "PyObject *":
                                       ^
SyntaxError: invalid syntax


And when I try compiling a cpp file (when doing cmake . and make) for the example here:
https://fenicsproject.org/olddocs/dolfin/1.4.0/cpp/demo/index.html
I get:
-- Configuring done
CMake Warning (dev) at CMakeLists.txt:37 (add_executable):
  Policy CMP0028 is not set: Double colon in target name means ALIAS or
  IMPORTED target.  Run "cmake --help-policy CMP0028" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  Target "demo_poisson" links to target "Boost::boost" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:37 (add_executable):
  Policy CMP0028 is not set: Double colon in target name means ALIAS or
  IMPORTED target.  Run "cmake --help-policy CMP0028" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  Target "demo_poisson" links to target "Boost::timer" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /home/alex/fenicsfiles/3dprinting/cpp



And then I get:
Scanning dependencies of target demo_poisson
[ 50%] Building CXX object CMakeFiles/demo_poisson.dir/main.cpp.o
In file included from /usr/local/include/dolfin/function/FunctionSpace.h:37:0,
                 from /usr/local/include/dolfin/function/dolfin_function.h:10,
                 from /usr/local/include/dolfin.h:26,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/usr/local/include/dolfin/fem/FiniteElement.h: In member function ‘void dolfin::FiniteElement::interpolate_vertex_values(double*, double*, const double*, int) const’:
/usr/local/include/dolfin/fem/FiniteElement.h:189:63: error: no matching function for call to ‘ufc::finite_element::interpolate_vertex_values(double*&, double*&, const double*&, int&) const’
                                               cell_orientation);
                                                               ^
In file included from /usr/local/include/dolfin/ale/MeshDisplacement.h:26:0,
                 from /usr/local/include/dolfin/mesh/Mesh.h:35,
                 from /usr/local/include/dolfin/mesh/dolfin_mesh.h:11,
                 from /usr/local/include/dolfin.h:15,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:183:18: note: candidate: virtual void ufc::finite_element::interpolate_vertex_values(double*, const double*, const double*, int, const ufc::cell&) const
     virtual void interpolate_vertex_values(double * vertex_values,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:183:18: note:   candidate expects 5 arguments, 4 provided
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: At global scope:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:118:8: error: ‘void poisson_finite_element_0::evaluate_reference_basis(double*, std::size_t, const double*) const’ marked ‘final’, but is not virtual
   void evaluate_reference_basis(double * reference_values,
        ^~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:118:8: error: ‘void poisson_finite_element_0::evaluate_reference_basis(double*, std::size_t, const double*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:150:8: error: ‘void poisson_finite_element_0::evaluate_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*) const’ marked ‘final’, but is not virtual
   void evaluate_reference_basis_derivatives(double * reference_values,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:150:8: error: ‘void poisson_finite_element_0::evaluate_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*) const’ marked ‘override’, but does not override
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:307:8: error: ‘void poisson_finite_element_0::transform_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*, const double*, const double*, const double*, const double*, int) const’ marked ‘final’, but is not virtual
   void transform_reference_basis_derivatives(double * values,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:307:8: error: ‘void poisson_finite_element_0::transform_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*, const double*, const double*, const double*, const double*, int) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:352:8: error: ‘void poisson_finite_element_0::evaluate_basis(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis(std::size_t i,
        ^~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:352:8: error: ‘void poisson_finite_element_0::evaluate_basis(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:391:8: error: ‘void poisson_finite_element_0::evaluate_basis_all(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis_all(double * values,
        ^~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:391:8: error: ‘void poisson_finite_element_0::evaluate_basis_all(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:408:8: error: ‘void poisson_finite_element_0::evaluate_basis_derivatives(std::size_t, std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis_derivatives(std::size_t i,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:408:8: error: ‘void poisson_finite_element_0::evaluate_basis_derivatives(std::size_t, std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:680:8: error: ‘void poisson_finite_element_0::evaluate_basis_derivatives_all(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis_derivatives_all(std::size_t n,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:680:8: error: ‘void poisson_finite_element_0::evaluate_basis_derivatives_all(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:711:10: error: ‘double poisson_finite_element_0::evaluate_dof(std::size_t, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   double evaluate_dof(std::size_t i,
          ^~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:711:10: error: ‘double poisson_finite_element_0::evaluate_dof(std::size_t, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:753:8: error: ‘void poisson_finite_element_0::evaluate_dofs(double*, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_dofs(double * values,
        ^~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:753:8: error: ‘void poisson_finite_element_0::evaluate_dofs(double*, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:779:8: error: ‘void poisson_finite_element_0::interpolate_vertex_values(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void interpolate_vertex_values(double * vertex_values,
        ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:779:8: error: ‘void poisson_finite_element_0::interpolate_vertex_values(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:792:8: error: ‘void poisson_finite_element_0::tabulate_dof_coordinates(double*, const double*, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void tabulate_dof_coordinates(double * dof_coordinates,
        ^~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:792:8: error: ‘void poisson_finite_element_0::tabulate_dof_coordinates(double*, const double*, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:805:8: error: ‘void poisson_finite_element_0::tabulate_reference_dof_coordinates(double*) const’ marked ‘final’, but is not virtual
   void tabulate_reference_dof_coordinates(double * reference_dof_coordinates) const final override
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:805:8: error: ‘void poisson_finite_element_0::tabulate_reference_dof_coordinates(double*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘void poisson_finite_element_0::evaluate_basis(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:366:13: error: ‘const class ufc::coordinate_mapping’ has no member named ‘compute_reference_geometry’; did you mean ‘compute_reference_coordinates’?
         cm->compute_reference_geometry(X, J, &detJ, K, 1, x, coordinate_dofs, cell_orientation);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_finite_element_0::create() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:823:41: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
     return new poisson_finite_element_0();
                                         ^
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:39:7: note:   because the following virtual functions are pure within ‘poisson_finite_element_0’:
 class poisson_finite_element_0: public ufc::finite_element
       ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/dolfin/ale/MeshDisplacement.h:26:0,
                 from /usr/local/include/dolfin/mesh/Mesh.h:35,
                 from /usr/local/include/dolfin/mesh/dolfin_mesh.h:11,
                 from /usr/local/include/dolfin.h:15,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:139:18: note:     virtual void ufc::finite_element::evaluate_basis(std::size_t, double*, const double*, const double*, int) const
     virtual void evaluate_basis(std::size_t i,
                  ^~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:146:18: note:     virtual void ufc::finite_element::evaluate_basis_all(double*, const double*, const double*, int) const
     virtual void evaluate_basis_all(double * values,
                  ^~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:152:18: note:     virtual void ufc::finite_element::evaluate_basis_derivatives(std::size_t, std::size_t, double*, const double*, const double*, int) const
     virtual void evaluate_basis_derivatives(std::size_t i,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:160:18: note:     virtual void ufc::finite_element::evaluate_basis_derivatives_all(std::size_t, double*, const double*, const double*, int) const
     virtual void evaluate_basis_derivatives_all(std::size_t n,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:169:20: note:     virtual double ufc::finite_element::evaluate_dof(std::size_t, const ufc::function&, const double*, int, const ufc::cell&) const
     virtual double evaluate_dof(std::size_t i,
                    ^~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:176:18: note:     virtual void ufc::finite_element::evaluate_dofs(double*, const ufc::function&, const double*, int, const ufc::cell&) const
     virtual void evaluate_dofs(double * values,
                  ^~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:183:18: note:     virtual void ufc::finite_element::interpolate_vertex_values(double*, const double*, const double*, int, const ufc::cell&) const
     virtual void interpolate_vertex_values(double * vertex_values,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:190:18: note:     virtual void ufc::finite_element::tabulate_dof_coordinates(double*, const double*) const
     virtual void tabulate_dof_coordinates(double * dof_coordinates,
                  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: At global scope:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:914:8: error: ‘void poisson_finite_element_1::evaluate_reference_basis(double*, std::size_t, const double*) const’ marked ‘final’, but is not virtual
   void evaluate_reference_basis(double * reference_values,
        ^~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:914:8: error: ‘void poisson_finite_element_1::evaluate_reference_basis(double*, std::size_t, const double*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:952:8: error: ‘void poisson_finite_element_1::evaluate_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*) const’ marked ‘final’, but is not virtual
   void evaluate_reference_basis_derivatives(double * reference_values,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:952:8: error: ‘void poisson_finite_element_1::evaluate_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1208:8: error: ‘void poisson_finite_element_1::transform_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*, const double*, const double*, const double*, const double*, int) const’ marked ‘final’, but is not virtual
   void transform_reference_basis_derivatives(double * values,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1208:8: error: ‘void poisson_finite_element_1::transform_reference_basis_derivatives(double*, std::size_t, std::size_t, const double*, const double*, const double*, const double*, const double*, int) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1253:8: error: ‘void poisson_finite_element_1::evaluate_basis(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis(std::size_t i,
        ^~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1253:8: error: ‘void poisson_finite_element_1::evaluate_basis(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1292:8: error: ‘void poisson_finite_element_1::evaluate_basis_all(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis_all(double * values,
        ^~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1292:8: error: ‘void poisson_finite_element_1::evaluate_basis_all(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1310:8: error: ‘void poisson_finite_element_1::evaluate_basis_derivatives(std::size_t, std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis_derivatives(std::size_t i,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1310:8: error: ‘void poisson_finite_element_1::evaluate_basis_derivatives(std::size_t, std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1804:8: error: ‘void poisson_finite_element_1::evaluate_basis_derivatives_all(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_basis_derivatives_all(std::size_t n,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1804:8: error: ‘void poisson_finite_element_1::evaluate_basis_derivatives_all(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1835:10: error: ‘double poisson_finite_element_1::evaluate_dof(std::size_t, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   double evaluate_dof(std::size_t i,
          ^~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1835:10: error: ‘double poisson_finite_element_1::evaluate_dof(std::size_t, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1901:8: error: ‘void poisson_finite_element_1::evaluate_dofs(double*, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void evaluate_dofs(double * values,
        ^~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1901:8: error: ‘void poisson_finite_element_1::evaluate_dofs(double*, const ufc::function&, const double*, int, const ufc::cell&, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1939:8: error: ‘void poisson_finite_element_1::interpolate_vertex_values(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void interpolate_vertex_values(double * vertex_values,
        ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1939:8: error: ‘void poisson_finite_element_1::interpolate_vertex_values(double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1956:8: error: ‘void poisson_finite_element_1::tabulate_dof_coordinates(double*, const double*, const ufc::coordinate_mapping*) const’ marked ‘final’, but is not virtual
   void tabulate_dof_coordinates(double * dof_coordinates,
        ^~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1956:8: error: ‘void poisson_finite_element_1::tabulate_dof_coordinates(double*, const double*, const ufc::coordinate_mapping*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1975:8: error: ‘void poisson_finite_element_1::tabulate_reference_dof_coordinates(double*) const’ marked ‘final’, but is not virtual
   void tabulate_reference_dof_coordinates(double * reference_dof_coordinates) const final override
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1975:8: error: ‘void poisson_finite_element_1::tabulate_reference_dof_coordinates(double*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘void poisson_finite_element_1::evaluate_basis(std::size_t, double*, const double*, const double*, int, const ufc::coordinate_mapping*) const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1267:13: error: ‘const class ufc::coordinate_mapping’ has no member named ‘compute_reference_geometry’; did you mean ‘compute_reference_coordinates’?
         cm->compute_reference_geometry(X, J, &detJ, K, 1, x, coordinate_dofs, cell_orientation);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_finite_element_1::create_sub_element(std::size_t) const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1991:45: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
         return new poisson_finite_element_0();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:1993:45: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
         return new poisson_finite_element_0();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_finite_element_1::create() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2001:41: error: invalid new-expression of abstract class type ‘poisson_finite_element_1’
     return new poisson_finite_element_1();
                                         ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:829:7: note:   because the following virtual functions are pure within ‘poisson_finite_element_1’:
 class poisson_finite_element_1: public ufc::finite_element
       ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/dolfin/ale/MeshDisplacement.h:26:0,
                 from /usr/local/include/dolfin/mesh/Mesh.h:35,
                 from /usr/local/include/dolfin/mesh/dolfin_mesh.h:11,
                 from /usr/local/include/dolfin.h:15,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:139:18: note:     virtual void ufc::finite_element::evaluate_basis(std::size_t, double*, const double*, const double*, int) const
     virtual void evaluate_basis(std::size_t i,
                  ^~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:146:18: note:     virtual void ufc::finite_element::evaluate_basis_all(double*, const double*, const double*, int) const
     virtual void evaluate_basis_all(double * values,
                  ^~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:152:18: note:     virtual void ufc::finite_element::evaluate_basis_derivatives(std::size_t, std::size_t, double*, const double*, const double*, int) const
     virtual void evaluate_basis_derivatives(std::size_t i,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:160:18: note:     virtual void ufc::finite_element::evaluate_basis_derivatives_all(std::size_t, double*, const double*, const double*, int) const
     virtual void evaluate_basis_derivatives_all(std::size_t n,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:169:20: note:     virtual double ufc::finite_element::evaluate_dof(std::size_t, const ufc::function&, const double*, int, const ufc::cell&) const
     virtual double evaluate_dof(std::size_t i,
                    ^~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:176:18: note:     virtual void ufc::finite_element::evaluate_dofs(double*, const ufc::function&, const double*, int, const ufc::cell&) const
     virtual void evaluate_dofs(double * values,
                  ^~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:183:18: note:     virtual void ufc::finite_element::interpolate_vertex_values(double*, const double*, const double*, int, const ufc::cell&) const
     virtual void interpolate_vertex_values(double * vertex_values,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:190:18: note:     virtual void ufc::finite_element::tabulate_dof_coordinates(double*, const double*) const
     virtual void tabulate_dof_coordinates(double * dof_coordinates,
                  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: At global scope:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2045:15: error: ‘std::size_t poisson_dofmap_0::num_global_support_dofs() const’ marked ‘final’, but is not virtual
   std::size_t num_global_support_dofs() const final override
               ^~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2045:15: error: ‘std::size_t poisson_dofmap_0::num_global_support_dofs() const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2050:15: error: ‘std::size_t poisson_dofmap_0::num_element_support_dofs() const’ marked ‘final’, but is not virtual
   std::size_t num_element_support_dofs() const final override
               ^~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2050:15: error: ‘std::size_t poisson_dofmap_0::num_element_support_dofs() const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2238:15: error: ‘std::size_t poisson_dofmap_1::num_global_support_dofs() const’ marked ‘final’, but is not virtual
   std::size_t num_global_support_dofs() const final override
               ^~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2238:15: error: ‘std::size_t poisson_dofmap_1::num_global_support_dofs() const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2243:15: error: ‘std::size_t poisson_dofmap_1::num_element_support_dofs() const’ marked ‘final’, but is not virtual
   std::size_t num_element_support_dofs() const final override
               ^~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2243:15: error: ‘std::size_t poisson_dofmap_1::num_element_support_dofs() const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2495:8: error: ‘void poisson_coordinate_mapping_1::compute_reference_coordinates(double*, std::size_t, const double*, const double*, int) const’ marked ‘final’, but is not virtual
   void compute_reference_coordinates(
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2495:8: error: ‘void poisson_coordinate_mapping_1::compute_reference_coordinates(double*, std::size_t, const double*, const double*, int) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2528:8: error: ‘void poisson_coordinate_mapping_1::compute_reference_geometry(double*, double*, double*, double*, std::size_t, const double*, const double*, int) const’ marked ‘final’, but is not virtual
   void compute_reference_geometry(
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2528:8: error: ‘void poisson_coordinate_mapping_1::compute_reference_geometry(double*, double*, double*, double*, std::size_t, const double*, const double*, int) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2577:8: error: ‘void poisson_coordinate_mapping_1::compute_jacobian_determinants(double*, std::size_t, const double*, int) const’ marked ‘final’, but is not virtual
   void compute_jacobian_determinants(
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2577:8: error: ‘void poisson_coordinate_mapping_1::compute_jacobian_determinants(double*, std::size_t, const double*, int) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2599:8: error: ‘void poisson_coordinate_mapping_1::compute_geometry(double*, double*, double*, double*, std::size_t, const double*, const double*, int) const’ marked ‘final’, but is not virtual
   void compute_geometry(
        ^~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2599:8: error: ‘void poisson_coordinate_mapping_1::compute_geometry(double*, double*, double*, double*, std::size_t, const double*, const double*, int) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2610:8: error: ‘void poisson_coordinate_mapping_1::compute_midpoint_geometry(double*, double*, const double*) const’ marked ‘final’, but is not virtual
   void compute_midpoint_geometry(
        ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2610:8: error: ‘void poisson_coordinate_mapping_1::compute_midpoint_geometry(double*, double*, const double*) const’ marked ‘override’, but does not override
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::coordinate_mapping* poisson_coordinate_mapping_1::create() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2449:45: error: invalid new-expression of abstract class type ‘poisson_coordinate_mapping_1’
     return new poisson_coordinate_mapping_1();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2428:7: note:   because the following virtual functions are pure within ‘poisson_coordinate_mapping_1’:
 class poisson_coordinate_mapping_1: public ufc::coordinate_mapping
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/dolfin/ale/MeshDisplacement.h:26:0,
                 from /usr/local/include/dolfin/mesh/Mesh.h:35,
                 from /usr/local/include/dolfin/mesh/dolfin_mesh.h:11,
                 from /usr/local/include/dolfin.h:15,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:304:18: note:     virtual void ufc::coordinate_mapping::compute_reference_coordinates(double*, std::size_t, const double*, const double*, double) const
     virtual void compute_reference_coordinates(
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:322:18: note:     virtual void ufc::coordinate_mapping::compute_jacobian_determinants(double*, std::size_t, const double*, double) const
     virtual void compute_jacobian_determinants(
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/.local/lib/python3.5/site-packages/ffc/backends/ufc/ufc.h:333:18: note:     virtual void ufc::coordinate_mapping::compute_geometry(double*, double*, double*, double*, std::size_t, const double*, const double*, double) const
     virtual void compute_geometry(
                  ^~~~~~~~~~~~~~~~
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_coordinate_mapping_1::create_coordinate_finite_element() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2469:41: error: invalid new-expression of abstract class type ‘poisson_finite_element_1’
     return new poisson_finite_element_1();
                                         ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual void poisson_coordinate_mapping_1::compute_physical_coordinates(double*, std::size_t, const double*, const double*) const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2482:30: error: cannot declare variable ‘xelement’ to be of abstract type ‘poisson_finite_element_0’
     poisson_finite_element_0 xelement;
                              ^~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual void poisson_coordinate_mapping_1::compute_jacobians(double*, std::size_t, const double*, const double*) const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2563:30: error: cannot declare variable ‘xelement’ to be of abstract type ‘poisson_finite_element_0’
     poisson_finite_element_0 xelement;
                              ^~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_form_0::create_coordinate_finite_element() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2939:41: error: invalid new-expression of abstract class type ‘poisson_finite_element_1’
     return new poisson_finite_element_1();
                                         ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::coordinate_mapping* poisson_form_0::create_coordinate_mapping() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2949:45: error: invalid new-expression of abstract class type ‘poisson_coordinate_mapping_1’
     return new poisson_coordinate_mapping_1();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_form_0::create_finite_element(std::size_t) const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2957:45: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
         return new poisson_finite_element_0();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:2959:45: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
         return new poisson_finite_element_0();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_form_1::create_coordinate_finite_element() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3182:41: error: invalid new-expression of abstract class type ‘poisson_finite_element_1’
     return new poisson_finite_element_1();
                                         ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::coordinate_mapping* poisson_form_1::create_coordinate_mapping() const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3192:45: error: invalid new-expression of abstract class type ‘poisson_coordinate_mapping_1’
     return new poisson_coordinate_mapping_1();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h: In member function ‘virtual ufc::finite_element* poisson_form_1::create_finite_element(std::size_t) const’:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3200:45: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
         return new poisson_finite_element_0();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3202:45: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
         return new poisson_finite_element_0();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3204:45: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
         return new poisson_finite_element_0();
                                             ^
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp: In function ‘int main()’:
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:72:32: error: no matching function for call to ‘Poisson::Form_a_FunctionSpace_0::Form_a_FunctionSpace_0(dolfin::UnitSquareMesh&)’
   Poisson::FunctionSpace V(mesh);
                                ^
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3474:3: note: candidate: Poisson::Form_a_FunctionSpace_0::Form_a_FunctionSpace_0(std::shared_ptr<const dolfin::Mesh>, std::shared_ptr<const dolfin::SubDomain>)
   Form_a_FunctionSpace_0(std::shared_ptr<const dolfin::Mesh> mesh, std::shared_ptr<const dolfin::SubDomain> constrained_domain):
   ^~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3474:3: note:   candidate expects 2 arguments, 1 provided
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3465:3: note: candidate: Poisson::Form_a_FunctionSpace_0::Form_a_FunctionSpace_0(std::shared_ptr<const dolfin::Mesh>)
   Form_a_FunctionSpace_0(std::shared_ptr<const dolfin::Mesh> mesh):
   ^~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3465:3: note:   no known conversion for argument 1 from ‘dolfin::UnitSquareMesh’ to ‘std::shared_ptr<const dolfin::Mesh>’
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3460:7: note: candidate: Poisson::Form_a_FunctionSpace_0::Form_a_FunctionSpace_0(const Poisson::Form_a_FunctionSpace_0&)
 class Form_a_FunctionSpace_0: public dolfin::FunctionSpace
       ^~~~~~~~~~~~~~~~~~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3460:7: note:   no known conversion for argument 1 from ‘dolfin::UnitSquareMesh’ to ‘const Poisson::Form_a_FunctionSpace_0&’
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3460:7: note: candidate: Poisson::Form_a_FunctionSpace_0::Form_a_FunctionSpace_0(Poisson::Form_a_FunctionSpace_0&&)
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3460:7: note:   no known conversion for argument 1 from ‘dolfin::UnitSquareMesh’ to ‘Poisson::Form_a_FunctionSpace_0&&’
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:77:33: error: no matching function for call to ‘dolfin::DirichletBC::DirichletBC(Poisson::FunctionSpace&, dolfin::Constant&, DirichletBoundary&)’
   DirichletBC bc(V, u0, boundary);
                                 ^
In file included from /usr/local/include/dolfin/fem/dolfin_fem.h:13:0,
                 from /usr/local/include/dolfin.h:31,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/usr/local/include/dolfin/fem/DirichletBC.h:207:5: note: candidate: dolfin::DirichletBC::DirichletBC(const dolfin::DirichletBC&)
     DirichletBC(const DirichletBC& bc);
     ^~~~~~~~~~~
/usr/local/include/dolfin/fem/DirichletBC.h:207:5: note:   candidate expects 1 argument, 3 provided
/usr/local/include/dolfin/fem/DirichletBC.h:198:5: note: candidate: dolfin::DirichletBC::DirichletBC(std::shared_ptr<const dolfin::FunctionSpace>, std::shared_ptr<const dolfin::GenericFunction>, const std::vector<long unsigned int>&, std::__cxx11::string)
     DirichletBC(std::shared_ptr<const FunctionSpace> V,
     ^~~~~~~~~~~
/usr/local/include/dolfin/fem/DirichletBC.h:198:5: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘std::shared_ptr<const dolfin::FunctionSpace>’
/usr/local/include/dolfin/fem/DirichletBC.h:181:5: note: candidate: dolfin::DirichletBC::DirichletBC(std::shared_ptr<const dolfin::FunctionSpace>, std::shared_ptr<const dolfin::GenericFunction>, std::size_t, std::__cxx11::string)
     DirichletBC(std::shared_ptr<const FunctionSpace> V,
     ^~~~~~~~~~~
/usr/local/include/dolfin/fem/DirichletBC.h:181:5: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘std::shared_ptr<const dolfin::FunctionSpace>’
/usr/local/include/dolfin/fem/DirichletBC.h:163:5: note: candidate: dolfin::DirichletBC::DirichletBC(std::shared_ptr<const dolfin::FunctionSpace>, std::shared_ptr<const dolfin::GenericFunction>, std::shared_ptr<const dolfin::MeshFunction<long unsigned int> >, std::size_t, std::__cxx11::string)
     DirichletBC(std::shared_ptr<const FunctionSpace> V,
     ^~~~~~~~~~~
/usr/local/include/dolfin/fem/DirichletBC.h:163:5: note:   candidate expects 5 arguments, 3 provided
/usr/local/include/dolfin/fem/DirichletBC.h:144:5: note: candidate: dolfin::DirichletBC::DirichletBC(std::shared_ptr<const dolfin::FunctionSpace>, std::shared_ptr<const dolfin::GenericFunction>, std::shared_ptr<const dolfin::SubDomain>, std::__cxx11::string, bool)
     DirichletBC(std::shared_ptr<const FunctionSpace> V,
     ^~~~~~~~~~~
/usr/local/include/dolfin/fem/DirichletBC.h:144:5: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘std::shared_ptr<const dolfin::FunctionSpace>’
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:80:31: error: no matching function for call to ‘Poisson::Form_a::Form_a(Poisson::FunctionSpace&, Poisson::FunctionSpace&)’
   Poisson::BilinearForm a(V, V);
                               ^
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3553:3: note: candidate: Poisson::Form_a::Form_a(std::shared_ptr<const dolfin::FunctionSpace>, std::shared_ptr<const dolfin::FunctionSpace>)
   Form_a(std::shared_ptr<const dolfin::FunctionSpace> V1, std::shared_ptr<const dolfin::FunctionSpace> V0):
   ^~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3553:3: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘std::shared_ptr<const dolfin::FunctionSpace>’
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3548:7: note: candidate: Poisson::Form_a::Form_a(const Poisson::Form_a&)
 class Form_a: public dolfin::Form
       ^~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3548:7: note:   candidate expects 1 argument, 2 provided
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:81:26: error: no matching function for call to ‘Poisson::Form_L::Form_L(Poisson::FunctionSpace&)’
   Poisson::LinearForm L(V);
                          ^
In file included from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:0:
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3713:3: note: candidate: Poisson::Form_L::Form_L(std::shared_ptr<const dolfin::FunctionSpace>, std::shared_ptr<const dolfin::GenericFunction>, std::shared_ptr<const dolfin::GenericFunction>)
   Form_L(std::shared_ptr<const dolfin::FunctionSpace> V0, std::shared_ptr<const dolfin::GenericFunction> f, std::shared_ptr<const dolfin::GenericFunction> g):
   ^~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3713:3: note:   candidate expects 3 arguments, 1 provided
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3704:3: note: candidate: Poisson::Form_L::Form_L(std::shared_ptr<const dolfin::FunctionSpace>)
   Form_L(std::shared_ptr<const dolfin::FunctionSpace> V0):
   ^~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3704:3: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘std::shared_ptr<const dolfin::FunctionSpace>’
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3699:7: note: candidate: Poisson::Form_L::Form_L(const Poisson::Form_L&)
 class Form_L: public dolfin::Form
       ^~~~~~
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3699:7: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘const Poisson::Form_L&’
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:85:9: error: no match for ‘operator=’ (operand types are ‘dolfin::CoefficientAssigner’ and ‘Source’)
   L.f = f;
         ^
In file included from /home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3403:0,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:
/usr/local/include/dolfin/function/CoefficientAssigner.h:50:10: note: candidate: void dolfin::CoefficientAssigner::operator=(std::shared_ptr<const dolfin::GenericFunction>)
     void operator= (std::shared_ptr<const GenericFunction> coefficient);
          ^~~~~~~~
/usr/local/include/dolfin/function/CoefficientAssigner.h:50:10: note:   no known conversion for argument 1 from ‘Source’ to ‘std::shared_ptr<const dolfin::GenericFunction>’
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:86:9: error: no match for ‘operator=’ (operand types are ‘dolfin::CoefficientAssigner’ and ‘dUdN’)
   L.g = g;
         ^
In file included from /home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3403:0,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:35:
/usr/local/include/dolfin/function/CoefficientAssigner.h:50:10: note: candidate: void dolfin::CoefficientAssigner::operator=(std::shared_ptr<const dolfin::GenericFunction>)
     void operator= (std::shared_ptr<const GenericFunction> coefficient);
          ^~~~~~~~
/usr/local/include/dolfin/function/CoefficientAssigner.h:50:10: note:   no known conversion for argument 1 from ‘dUdN’ to ‘std::shared_ptr<const dolfin::GenericFunction>’
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:89:15: error: no matching function for call to ‘dolfin::Function::Function(Poisson::FunctionSpace&)’
   Function u(V);
               ^
In file included from /usr/local/include/dolfin/ale/MeshDisplacement.h:29:0,
                 from /usr/local/include/dolfin/mesh/Mesh.h:35,
                 from /usr/local/include/dolfin/mesh/dolfin_mesh.h:11,
                 from /usr/local/include/dolfin.h:15,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/usr/local/include/dolfin/function/Function.h:117:5: note: candidate: dolfin::Function::Function(const dolfin::Function&, std::size_t)
     Function(const Function& v, std::size_t i);
     ^~~~~~~~
/usr/local/include/dolfin/function/Function.h:117:5: note:   candidate expects 2 arguments, 1 provided
/usr/local/include/dolfin/function/Function.h:106:5: note: candidate: dolfin::Function::Function(const dolfin::Function&)
     Function(const Function& v);
     ^~~~~~~~
/usr/local/include/dolfin/function/Function.h:106:5: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘const dolfin::Function&’
/usr/local/include/dolfin/function/Function.h:98:5: note: candidate: dolfin::Function::Function(std::shared_ptr<const dolfin::FunctionSpace>, std::__cxx11::string)
     Function(std::shared_ptr<const FunctionSpace> V,
     ^~~~~~~~
/usr/local/include/dolfin/function/Function.h:98:5: note:   candidate expects 2 arguments, 1 provided
/usr/local/include/dolfin/function/Function.h:88:5: note: candidate: dolfin::Function::Function(std::shared_ptr<const dolfin::FunctionSpace>, std::shared_ptr<dolfin::GenericVector>)
     Function(std::shared_ptr<const FunctionSpace> V,
     ^~~~~~~~
/usr/local/include/dolfin/function/Function.h:88:5: note:   candidate expects 2 arguments, 1 provided
/usr/local/include/dolfin/function/Function.h:76:14: note: candidate: dolfin::Function::Function(std::shared_ptr<const dolfin::FunctionSpace>)
     explicit Function(std::shared_ptr<const FunctionSpace> V);
              ^~~~~~~~
/usr/local/include/dolfin/function/Function.h:76:14: note:   no known conversion for argument 1 from ‘Poisson::FunctionSpace {aka Poisson::Form_a_FunctionSpace_0}’ to ‘std::shared_ptr<const dolfin::FunctionSpace>’
/usr/local/include/dolfin/function/Function.h:69:5: note: candidate: dolfin::Function::Function()
     Function() : Hierarchical<Function>(*this) {}
     ^~~~~~~~
/usr/local/include/dolfin/function/Function.h:69:5: note:   candidate expects 0 arguments, 1 provided
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:97:9: error: ‘plot’ was not declared in this scope
   plot(u);
         ^
/home/alex/fenicsfiles/3dprinting/cpp/main.cpp:98:15: error: ‘interactive’ was not declared in this scope
   interactive();
               ^
In file included from /usr/include/x86_64-linux-gnu/c++/6/bits/c++allocator.h:33:0,
                 from /usr/include/c++/6/bits/allocator.h:46,
                 from /usr/include/c++/6/string:41,
                 from /usr/local/include/dolfin/common/defines.h:27,
                 from /usr/local/include/dolfin/common/dolfin_common.h:7,
                 from /usr/local/include/dolfin.h:10,
                 from /home/alex/fenicsfiles/3dprinting/cpp/main.cpp:34:
/usr/include/c++/6/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = poisson_finite_element_0; _Args = {}; _Tp = poisson_finite_element_0]’:
/usr/include/c++/6/bits/alloc_traits.h:475:4:   required from ‘static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = poisson_finite_element_0; _Args = {}; _Tp = poisson_finite_element_0; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<poisson_finite_element_0>]’
/usr/include/c++/6/bits/shared_ptr_base.h:520:39:   required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {}; _Tp = poisson_finite_element_0; _Alloc = std::allocator<poisson_finite_element_0>; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6/bits/shared_ptr_base.h:615:4:   required from ‘std::__shared_count<_Lp>::__shared_count(std::_Sp_make_shared_tag, _Tp*, const _Alloc&, _Args&& ...) [with _Tp = poisson_finite_element_0; _Alloc = std::allocator<poisson_finite_element_0>; _Args = {}; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6/bits/shared_ptr_base.h:1100:35:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<poisson_finite_element_0>; _Args = {}; _Tp = poisson_finite_element_0; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/6/bits/shared_ptr.h:319:64:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<poisson_finite_element_0>; _Args = {}; _Tp = poisson_finite_element_0]’
/usr/include/c++/6/bits/shared_ptr.h:619:14:   required from ‘std::shared_ptr<_Tp1> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = poisson_finite_element_0; _Alloc = std::allocator<poisson_finite_element_0>; _Args = {}]’
/usr/include/c++/6/bits/shared_ptr.h:635:39:   required from ‘std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = poisson_finite_element_0; _Args = {}]’
/home/alex/fenicsfiles/3dprinting/cpp/Poisson.h:3419:116:   required from here
/usr/include/c++/6/ext/new_allocator.h:120:4: error: invalid new-expression of abstract class type ‘poisson_finite_element_0’
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMakeFiles/demo_poisson.dir/build.make:62: recipe for target 'CMakeFiles/demo_poisson.dir/main.cpp.o' failed
make[2]: *** [CMakeFiles/demo_poisson.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/demo_poisson.dir/all' failed
make[1]: *** [CMakeFiles/demo_poisson.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2


files to install fenics and ipopt

Jack Hale

unread,
Sep 18, 2017, 10:45:55 AM9/18/17
to fenics-support
Building FEniCS from scratch is not an easy task and requires some experience. It is difficult to document because the precise procedure varies significantly between machines. Even tiny changes can break pre-canned instructions.

A good solution, and one that I advocate, is to use our Docker images.

Install Docker following instructions on https://docker.com

Then run:


which will give you an environment with FEniCS. More information here:


Hope that helps,

Jack
...

Garth N. Wells

unread,
Sep 18, 2017, 11:08:04 AM9/18/17
to alexandermartinezmarchese, fenics-support
Looks like you might have an old UFC header lying about. Make sure
there is no old code is /usr/local/ or elsewhere.

Garth

On 16 September 2017 at 23:13, alexandermartinezmarchese
> --
> You received this message because you are subscribed to the Google Groups
> "fenics-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to fenics-suppor...@googlegroups.com.
> To post to this group, send email to fenics-...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/fenics-support/05b86030-7b73-4921-a8ee-7cfffa87c049%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

alexandermartinezmarchese

unread,
Sep 18, 2017, 12:10:53 PM9/18/17
to fenics-support
Jack,

    Thank you for the prompt response. The reason I was trying to install fenics from source and not docker was because of the following two reasons:

Can I compile the c++ examples using docker?

Can I install other libraries such as dolphin-adjoint, Eigen and IPOPT (hard to install in itself) within docker?

What do people do that use fenics with dolphin-adjoint and IPOPT?


Thank you,
Alex
...

Jan Blechta

unread,
Sep 20, 2017, 9:09:03 AM9/20/17
to alexandermartinezmarchese, fenics-support
On Mon, 18 Sep 2017 09:10:53 -0700 (PDT)
alexandermartinezmarchese <alexandermar...@gmail.com> wrote:

> Jack,
>
> Thank you for the prompt response. The reason I was trying to
> install fenics from source and not docker was because of the
> following two reasons:
>
> Can I compile the c++ examples using docker?

Yes.

cd ~/local/share/dolfin/demo/documented/poisson/cpp/
mkdir build
cd build
cmake ../
make
./demo_poisson

>
> Can I install other libraries such as dolphin-adjoint, Eigen and
> IPOPT (hard to install in itself) within docker?

Eigen is installed in the FEniCS image. Installation of other software
is possible in principle.

Jan
Reply all
Reply to author
Forward
0 new messages