|
From: | asim ullah khan |
Subject: | [Getfem-users] file error(compilation) |
Date: | Sat, 28 May 2016 13:33:59 +0000 |
Respected Users, I have followed following steps 1- first i configure using command given on webpage 2- i make and than make test 3- i make install (my test report passed 37 out of 38 tests) after that i want to make some basic program in getfem++, so for understanding the method of writing program i picked one example from test folder and copied it to /document/test1 i picked two files laplacian.cc and laplacian.pram than i have given the following command on my terminal g++ -o output.o laplacian.cc (same command is also tried with 'make laplacian' ) follwing list of error generated as below error In file included from /usr/local/include/getfem/getfem_mesh_slice.h:40:0, from /usr/local/include/getfem/getfem_export.h:42, from laplacian.cc:35: /usr/local/include/getfem/getfem_mesh_slicers.h:450:10: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type std::unique_ptr<const mesh_slice_cv_dof_data_base> mfU; ^ /usr/local/include/getfem/getfem_mesh_slicers.h: In constructor ‘getfem::slicer_isovalues::slicer_isovalues(const getfem::mesh_slice_cv_dof_data_base&, bgeot::scalar_type, int)’: /usr/local/include/getfem/getfem_mesh_slicers.h:468:31: error: class ‘getfem::slicer_isovalues’ does not have any field named ‘mfU’ slicer_volume(orient_), mfU(mfU_.clone()), val(val_) { ^ In file included from /usr/local/include/gmm/gmm_ref.h:46:0, from /usr/local/include/gmm/gmm_def.h:40, from /usr/local/include/gmm/gmm_kernel.h:41, from /usr/local/include/getfem/getfem_assembling_tensors.h:40, from /usr/local/include/getfem/getfem_assembling.h:44, from laplacian.cc:34: /usr/local/include/getfem/getfem_mesh_slicers.h:469:7: error: ‘mfU’ was not declared in this scope GMM_ASSERT1(mfU->pmf->get_qdim() == 1, ^ In file included from /usr/local/include/getfem/getfem_mesh_slice.h:40:0, from /usr/local/include/getfem/getfem_export.h:42, from laplacian.cc:35: /usr/local/include/getfem/getfem_mesh_slicers.h:471:23: error: ‘mfU’ was not declared in this scope val_scaling = mfU->maxval(); ^ In file included from laplacian.cc:35:0: /usr/local/include/getfem/getfem_export.h: At global scope: /usr/local/include/getfem/getfem_export.h:73:10: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type std::unique_ptr<mesh_fem> pmf; ^ /usr/local/include/getfem/getfem_export.h: In member function ‘void getfem::vtk_export::write_point_data(const getfem::mesh_fem&, const VECT&, const string&)’: /usr/local/include/getfem/getfem_export.h:203:34: error: ‘pmf’ was not declared in this scope std::vector<scalar_type> V(pmf->nb_dof() * Q); ^ /usr/local/include/getfem/getfem_export.h: In member function ‘void getfem::vtk_export::write_dataset_(const VECT&, const string&, bgeot::size_type, bool)’: /usr/local/include/getfem/getfem_export.h:240:22: error: ‘pmf’ was not declared in this scope : pmf->linked_mesh().convex_index().card(); ^ /usr/local/include/getfem/getfem_export.h: At global scope: /usr/local/include/getfem/getfem_export.h:296:10: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type std::unique_ptr<mesh_fem> pmf; ^ /usr/local/include/getfem/getfem_export.h: In member function ‘void getfem::dx_export::write_point_data(const getfem::mesh_fem&, const VECT&, std::__cxx11::string)’: /usr/local/include/getfem/getfem_export.h:449:34: error: ‘pmf’ was not declared in this scope std::vector<scalar_type> V(pmf->nb_dof() * Q); ^ /usr/local/include/getfem/getfem_export.h: In member function ‘void getfem::dx_export::write_dataset_(const VECT&, std::__cxx11::string, bool)’: /usr/local/include/getfem/getfem_export.h:485:22: error: ‘pmf’ was not declared in this scope : pmf->linked_mesh().convex_index().card(); ^ /usr/local/include/getfem/getfem_export.h: At global scope: /usr/local/include/getfem/getfem_export.h:551:10: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type std::unique_ptr<mesh_fem> pmf; ^ /usr/local/include/getfem/getfem_export.h: In member function ‘void getfem::pos_export::write(const getfem::mesh_fem&, const VECT&, const string&)’: /usr/local/include/getfem/getfem_export.h:616:34: error: ‘pmf’ was not declared in this scope std::vector<scalar_type> V(pmf->nb_dof()*qdim_u); ^ laplacian.cc: At global scope: laplacian.cc:76:27: error: ‘std’ does not name a type struct laplacian_problem {std ^ laplacian.cc: In member function ‘void laplacian_problem::init()’: laplacian.cc:149:3: error: expected primary-_expression_ before ‘getfem’ getfem::pfem pf_u = getfem::fem_descriptor(FEM_TYPE); ^ laplacian.cc:153:48: error: ‘pf_u’ was not declared in this scope mf_u.set_finite_element(mesh.convex_index(), pf_u); ^ laplacian.cc:190:19: error: ‘NEUMANN_BOUNDARY_NUM’ was not declared in this scope mesh.region(NEUMANN_BOUNDARY_NUM).add(i.cv(), i.f()); ^ laplacian.cc:192:19: error: ‘DIRICHLET_BOUNDARY_NUM’ was not declared in this scope mesh.region(DIRICHLET_BOUNDARY_NUM).add(i.cv(), i.f()); ^ laplacian.cc: In member function ‘void laplacian_problem::assembly()’: laplacian.cc:219:6: error: ‘NEUMANN_BOUNDARY_NUM’ was not declared in this scope NEUMANN_BOUNDARY_NUM); ^ laplacian.cc:226:9: error: ‘DIRICHLET_BOUNDARY_NUM’ was not declared in this scope DIRICHLET_BOUNDARY_NUM, D); ^ laplacian.cc:239:18: error: ‘DIRICHLET_BOUNDARY_NUM’ was not declared in this scope mf_rhs, F, DIRICHLET_BOUNDARY_NUM); than i also tried to build by using -std=c++11 switch but folllowing list of errors are listed laplacian.cc:76:27: error: ‘std’ does not name a type struct laplacian_problem {std ^ laplacian.cc: In member function ‘void laplacian_problem::init()’: laplacian.cc:149:3: error: expected primary-_expression_ before ‘getfem’ getfem::pfem pf_u = getfem::fem_descriptor(FEM_TYPE); ^ laplacian.cc:153:48: error: ‘pf_u’ was not declared in this scope mf_u.set_finite_element(mesh.convex_index(), pf_u); ^ laplacian.cc:190:19: error: ‘NEUMANN_BOUNDARY_NUM’ was not declared in this scope mesh.region(NEUMANN_BOUNDARY_NUM).add(i.cv(), i.f()); ^ laplacian.cc:192:19: error: ‘DIRICHLET_BOUNDARY_NUM’ was not declared in this scope mesh.region(DIRICHLET_BOUNDARY_NUM).add(i.cv(), i.f()); ^ laplacian.cc: In member function ‘void laplacian_problem::assembly()’: laplacian.cc:219:6: error: ‘NEUMANN_BOUNDARY_NUM’ was not declared in this scope NEUMANN_BOUNDARY_NUM); ^ laplacian.cc:226:9: error: ‘DIRICHLET_BOUNDARY_NUM’ was not declared in this scope DIRICHLET_BOUNDARY_NUM, D); ^ laplacian.cc:239:18: error: ‘DIRICHLET_BOUNDARY_NUM’ was not declared in this scope mf_rhs, F, DIRICHLET_BOUNDARY_NUM); can you help me in understanding the problem. I am not so good in programming at advance level. I there any problem while reading the file from parameter file Is there also any compiled tutorials for getfem++ using C++ without any interface. thanking in advance REgards ASIM ULLAH KHAN Subject: Re: [Getfem-users] any comprehensive guide To: address@hidden address@hidden From: address@hidden Date: Fri, 27 May 2016 08:15:07 +0200 Dear Asim Ullah Khan, It should work if you performed a "make install". Can you report the error you got ? Yves. Le 26/05/2016 17:55, asim ullah khan a écrit :
-- Yves Renard (address@hidden) tel : (33) 04.72.43.87.08 Pole de Mathematiques, INSA-Lyon fax : (33) 04.72.43.85.29 20, rue Albert Einstein 69621 Villeurbanne Cedex, FRANCE http://math.univ-lyon1.fr/~renard --------- |
[Prev in Thread] | Current Thread | [Next in Thread] |