Marc, 

FilteredMatrix does its tricks by not changing the matrix, and instead applying 
pre and post processing to vector matrix multiplication. 

UMFPACK is an LU decomposition, which affects directly the entries of the 
matrix. 

What we have done in the past is the following: 

Apply boundary values to the matrix, with a fake boundary_values map, in which 
all entries which you want to later apply are set to one, a zero rhs and 
*without* eliminating the columns of the matrix (there is an optional boolean 
argument for this in apply_boundary_values). Store the rhs you get out of this.

Factorize the matrix, then when you want to apply it to different bondary 
conditions, scale the values of the rhs corresponding to the dirichlet 
conditions with the previously stored rhs values (which will contain the value 
of the corresponding diagonal entry in the matrix), save the correct boundary 
values in the solution vector and call vmult of the umfpack factorization...

Let me know if this works...

L.

--
Luca Heltai <[email protected]>
http://people.sissa.it/~heltai/
Scuola Internazionale Superiore di Studi Avanzati
Phone:  +39 040 3787 449, Office: 732
--
There are no answers, only cross references

On Nov 24, 2011, at 4:27 PM, Marc Secanell Gallart wrote:

> Dear deal.ii users,
> 
> I am trying to solve a problem using the SparseDirectUMFPACK class. 
> Currently, I am applying the Dirichlet boundary conditions to my matrix and 
> right hand side using the class FilteredMatrix in order to be able to re-use 
> my system matrix. Unfortunately, I found out that SparseDirectUMFPACK has not 
> been instantiated for MATRIX templates of type FilteredMatrix. I was 
> wondering, could anyone please give me some information on what I would need 
> to do to extend the SparseDirectUMFPACK interface to be able to use objects 
> of class FilteredMatrix with SparseDirectUMFPACK?
> 
> Thank you,
> 
> Marc
> 
> -- 
> --------------------------------------------------------------------------------------------------------------------
> Marc Secanell, Ph.D., P.Eng.
> Assistant Professor
> Energy Systems Design Laboratory
> Department of Mechanical Engineering
> University of Alberta
> 4-31F Mechanical Engineering Building
> Edmonton AB T6G 2G8 Canada
> Phone: (780) 492 6961
> E-mail: [email protected]
> Confidentiality notice: Emails sent to [email protected] are forwarded to 
> a Google-supported email account. Emails, attachments, documents and 
> calendaring data, stored, received and sent through this University account 
> may be transmitted to and stored on servers outside of the University, 
> Alberta or Canada. The University of Alberta cannot and does not guarantee 
> protection against the possible disclosure of your data including, without 
> limitation, against possible secret disclosures of data to a foreign 
> authority as a consequence of foreign laws.
> --------------------------------------------------------------------------------------------------------------------
> 
> _______________________________________________
> dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to