|
From: | David Danan |
Subject: | Re: [Getfem-users] Questions regarding Parallelization version of GetFEM/add_initialized_matrix_data |
Date: | Fri, 2 Jun 2017 17:48:49 +0200 |
Dear David,
First, please now use the list address@hidden. GetFEM has been migrated to Savannah and the old list address@hidden is not to be used anymore and will be deactivated soon.
Concerning your first question, I am not familiar with Mac OS, but it seems that the mpi library (libmpi) has not been linked. Make sure that it is installed and detected by the configure file.
Concerning the second question, you are right, there were an error in src/getfem_generic_assembly.cc in line 9521. "pnode->init_vector_tensor(n);" has to be replaced by "pnode->t.adjust_sizes( workspace.qdims(name));". I make a commit of this change. Alternatively, you can use "Reshape(M_fibres,3,3):Grad_ Test_u", it should work as well. Thank you for your bug report,Yves.
Le 18/05/2017 à 13:13, David Danan a écrit :1) I am struggling to install the parallel version of Getfem (on OS X Yosemite).Dear Getfem users,i have several questions regarding completely different issues:
After the first steps without visible issues/errors (./configure, make, make install), when i try to compile one of the test cases, i have the following errors
Undefined symbols for architecture x86_64:
"_MPI_Allreduce", referenced from:
double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
"_MPI_Comm_rank", referenced from:
elastostatic_problem::compute_error(std::vector<double, std::allocator<double> >&) in elastostatic.o
_main in elastostatic.o
"_MPI_Finalize", referenced from:
_main in elastostatic.o
"_MPI_Init", referenced from:
_main in elastostatic.o
"_MPI_Wtime", referenced from:
elastostatic_problem::init()in elastostatic.o
elastostatic_problem::solve(std::vector<double, std::allocator<double> >&) in elastostatic.o
_main in elastostatic.o
"_ompi_mpi_comm_world", referenced from:
double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
elastostatic_problem::compute_error(std::vector<double, std::allocator<double> >&) in elastostatic.o
_main in elastostatic.o
"_ompi_mpi_double", referenced from:
double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
"_ompi_mpi_op_sum", referenced from:
double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [elastostatic] Error 1
Here is the options i used for configure
./configure CXX=g++-7 MPICXX=mpic++ CXXFLAGS=-g --with-mumps-include-dir=/usr/local/Cellar/mumps/5.0.2_1/ include/ --with-blas=/usr/local/opt/ openblas/include LDFLAGS='-L/usr/local/Cellar/ mumps/5.0.2_1/lib -L/usr/local/lib -L/usr/local/opt/openblas/lib -L/usr/local/Cellar/open-mpi/ 2.1.1/lib/' --enable-paralevel=2 --enable-qhull --enable-python=no --enable-mumps --enable-boost --enable-shared --with-optimization=-O2 --with-pic If it is not enough, please find enclosed the config.log.
2) I wanted to consider a matrix in a problem, therefore i used
base_matrix M_fibres(3,3);
//Definition of the matrix ommited heremodel.add_initialized_matrix_data("M_fibres", M_fibres);
However, when i added the associated brick in the model:
getfem::add_linear_generic_assembly_brick(model, mim,"M_fibres:Grad_Test_u");
it generated the following error
M_fibres:Grad_Test_u
--------^
Frobenius product of expressions of different sizes (9,1 != 3,3).
terminate called after throwing an instance of 'gmm::gmm_error'
what(): Error in getfem_generic_assembly.cc, line 7164 :
Error in assembly string
Abort trap: 6
It seems M_fibres is seen as a 9x1 vector instead of a 3x3 matrix, if i am not mistaken. Is there another way to do it?
Thanks in advance for your help,
David.
_______________________________________________ Getfem-users mailing list address@hidden https://mail.gna.org/listinfo/ getfem-users
-- 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] |