[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Getfem-users] write on global matrix with gmm
From: |
Yves Renard |
Subject: |
Re: [Getfem-users] write on global matrix with gmm |
Date: |
Mon, 19 Nov 2007 12:44:22 +0100 |
User-agent: |
KMail/1.9.5 |
On Monday 19 November 2007 11:52, mikael gueguen wrote:
> Le 19 nov. 07 à 11:31, Yves Renard a écrit :
> > On Monday 19 November 2007 11:15, mikael gueguen wrote:
> >> hi
> >> what is the good way to write global matrix for FEM with gmm?
> >> if i use a dense_matrix for writing the global matrix during the
> >> assembly procedure, i have problem with large scale problem,
> >> and if i use a col_matrix < gmm::wsvector<double> >, it 's not
> >> possible to access the rows, and i cannot insert boundary condition.
> >>
> >> How can i resolve that?
> >
> > You mean you want to prescribe Dirichlet type boundary conditions
> > (solution
> > prescribed on the boundary) ?
>
> yes
>
> > It depends on how you prescribe the boundary conditions. There is
> > at least
> > three possibilities : Adapt the stiffness matrix cleaning some
> > lines of the
> > matrix, penalization or Lagrange multipliers.
>
> i set to zero the row and column corresponding to prescribed dof:
> gmm::scale(gmm::mat_col(M,c),0.);
> gmm::scale(gmm::mat_row(M,c),0.);
> M(c,c)=1.;
>
> > For the first method, the optimal way if either to have a row matrix
> > (row_matrix < gmm::wsvector<double> > or row_matrix <
> > gmm::rsvector<double> >
> > for instance) or if you have a column matrix, set to zero the
> > potentialy non
> > zero elements by considering the neighbor dofs (i.e. the dofs of
> > the elements
> > containing the dof to be prescribed).
>
> only the dofs of the element? but i must also access the row and
> colums elements in my matrix in this case.
The function
add_Dirichlet_dof(M, B, mf, dof, dof_val);
do this job (line 1266 of getfem_assembling.h).
Yves.
--
Yves Renard (address@hidden) tel : (33) 04.72.43.87.08
Pole de Mathematiques, INSA de Lyon fax : (33) 04.72.43.85.29
20, rue Albert Einstein
69621 Villeurbanne Cedex, FRANCE
http://math.univ-lyon1.fr/~renard
---------