Dear David, 

First, please now use the list [email protected] . GetFEM has been 
migrated to Savannah and the old list [email protected] 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 : 



Dear Getfem users, 

i have several questions regarding completely different issues: 

1) I am struggling to install the parallel version of Getfem (on OS X 
Yosemite). 

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 here 
model.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 [email protected] 
https://mail.gna.org/listinfo/getfem-users 






-- 

  Yves Renard ( [email protected] )       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 --------- 

Reply via email to