getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] Questions regarding Parallelization version of GetFEM


From: Yves Renard
Subject: Re: [Getfem-users] Questions regarding Parallelization version of GetFEM/add_initialized_matrix_data
Date: Fri, 19 May 2017 20:25:10 +0200 (CEST)


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 :
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
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

---------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]