← Back to team overview

ffc team mailing list archive

Re: quadrature switch doesn't compile

 

Aha, after using "ff -l dolfin -r quadrature Elastomer2d.form" to generate the Elastomer2d.h file,  the main.cpp can compile. Originally I followed the tutorial at fenics.org, and thought "-r quadrature" was to replace "-l dolfin", and now I understand that it's an independent switch.

Thank you very much for your help.

Best,
Chong Luo



________________________________
From: Kristian Oelgaard <k.b.oelgaard@xxxxxxxxxx>
To: Chong Luo <luo.chong@xxxxxxxxx>
Cc: ffc-dev@xxxxxxxxxx
Sent: Thursday, November 6, 2008 4:26:28 AM
Subject: Re: [FFC-dev] quadrature switch doesn't compile

Quoting Chong Luo <luo.chong@xxxxxxxxx>:

> It takes more than 40 minutes to compile my form file using the default
> "tensor" switch, so I tried the "quadrature" switch
> $ ffc -r quadrature Elastomer2d.form 
> 
> It compiled much faster, and successfully generated the header file
> Elastomer2d.h.
> 
> However, when I tried to compile the main.cpp using this header file, I got
> the following errors:
> $ scons
> scons: Reading SConscript files ...
> scons: done reading SConscript files.
> scons: Building targets ...
> mpic++ -o main.o -c -Wall -pipe -ansi -g -O2 -fno-strict-aliasing -pthread
> -DDEBUG -DNDEBUG -DHAS_MPI=1 -DMPICH_IGNORE_CXX_SEEK -DPACKAGE_VERSION=0.8.1
> -DHAS_PETSC=1 -DHAS_UMFPACK=1 -DHAS_GTS=1 -DHAS_CHOLMOD=1
> -I/tmp/buildd/dolfin-0.8.1/debian/tmp/include
> -I/usr/lib/python2.5/site-packages/numpy/core/include
> -I/usr/include/suitesparse -I/usr/include/python2.5
> -I/usr/lib/petsc/bmake/linux-gnu-c-opt -I/usr/lib/petsc/include
> -I/usr/lib/openmpi/include -I/usr/lib/openmpi/lib -I. -I/usr/include/libxml2
> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include main.cpp
> main.cpp: In constructor
> ¡MyNonlinearProblem::MyNonlinearProblem(dolfin::Mesh&, dolfin::SubDomain&,
> dolfin::Function&, dolfin::Function&, dolfin::Function&, dolfin::Function&,
> dolfin::Function&, dolfin::Function&, dolfin::Function&)¢:
> main.cpp:88: error: no matching function for call to
> ¡Elastomer2dBilinearForm::Elastomer2dBilinearForm(dolfin::Function&,
> dolfin::Function&, dolfin::Function&, dolfin::Function&)¢
> Elastomer2d.h:32923: note: candidates are:
> Elastomer2dBilinearForm::Elastomer2dBilinearForm()
> Elastomer2d.h:32919: note:                
> Elastomer2dBilinearForm::Elastomer2dBilinearForm(const
> Elastomer2dBilinearForm&)
> main.cpp:89: error: no matching function for call to
> ¡Elastomer2dLinearForm::Elastomer2dLinearForm(dolfin::Function&,
> dolfin::Function&, dolfin::Function&, dolfin::Function&, dolfin::Function&)¢
> Elastomer2d.h:58050: note: candidates are:
> Elastomer2dLinearForm::Elastomer2dLinearForm()
> Elastomer2d.h:58046: note:                
> Elastomer2dLinearForm::Elastomer2dLinearForm(const Elastomer2dLinearForm&)
> scons: *** [main.o] Error 1
> scons: building terminated because of errors.
> 
> The corresponding line 88 and line 89 of the main.cpp are
> 87       // Create forms
> 88      a = new Elastomer2dBilinearForm(u, c10, alpha, beta);
> 89      L = new Elastomer2dLinearForm(u, g, c10, alpha, beta);
> 
> Could you please help me with this?

Which version of FFC are you using? Did you compile with the '-l dolfin' option?

Kristian

> Thank you!
> 
> Best,
> Chong Luo
> 
> 
>      


      

References