dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #19879
A small patch
Hi,
please find enclosed a small patch that:
* Fixes a bug in the XML parser for matrices
* Adds the method binary_dump to PETScMatrix
* Adds the method set_deflation_space to SLEPcEigenSolver
Best,
--
Ola Skavhaug
Research Programmer
Simula Research Laboratory
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: skavhaug@xxxxxxxxx-20101012074511-ak140s0eubannkra
# target_branch: lp:dolfin
# testament_sha1: ac95ed6dee01d940746fd9092baad8b836c0f7b7
# timestamp: 2010-10-12 09:49:35 +0200
# source_branch: .
# base_revision_id: hake.dev@xxxxxxxxx-20101007215305-pn914tgx9h7si08v
#
# Begin patch
=== modified file 'dolfin/io/XMLMatrix.cpp'
--- dolfin/io/XMLMatrix.cpp 2010-03-07 20:36:41 +0000
+++ dolfin/io/XMLMatrix.cpp 2010-10-12 07:34:44 +0000
@@ -2,7 +2,7 @@
// Licensed under the GNU LGPL Version 2.1.
//
// First added: 2009-03-11
-// Last changed: 2009-03-17
+// Last changed: 2010-10-12
#include <dolfin/la/GenericMatrix.h>
#include <dolfin/log/dolfin_log.h>
@@ -64,6 +64,7 @@
{
A.apply("add");
state = DONE;
+ release();
}
break;
=== modified file 'dolfin/la/PETScMatrix.cpp'
--- dolfin/la/PETScMatrix.cpp 2010-08-18 11:18:07 +0000
+++ dolfin/la/PETScMatrix.cpp 2010-10-12 07:35:29 +0000
@@ -398,6 +398,14 @@
return *this;
}
//-----------------------------------------------------------------------------
+void PETScMatrix::binary_dump(std::string file_name) const
+{
+ PetscViewer view_out;
+ PetscViewerBinaryOpen(PETSC_COMM_WORLD, file_name.c_str(), FILE_MODE_WRITE, &view_out);
+ MatView(*(A.get()), view_out);
+ PetscViewerDestroy(view_out);
+}
+//-----------------------------------------------------------------------------
std::string PETScMatrix::str(bool verbose) const
{
std::stringstream s;
=== modified file 'dolfin/la/PETScMatrix.h'
--- dolfin/la/PETScMatrix.h 2010-07-21 17:31:22 +0000
+++ dolfin/la/PETScMatrix.h 2010-10-12 07:35:29 +0000
@@ -130,6 +130,9 @@
/// Assignment operator
const PETScMatrix& operator= (const PETScMatrix& A);
+ /// Dump matrix to PETSc binary format
+ void binary_dump(std::string file_name) const;
+
private:
// PETSc norm types
=== modified file 'dolfin/la/SLEPcEigenSolver.cpp'
--- dolfin/la/SLEPcEigenSolver.cpp 2010-09-30 18:38:35 +0000
+++ dolfin/la/SLEPcEigenSolver.cpp 2010-10-12 07:35:58 +0000
@@ -122,6 +122,11 @@
return num_conv;
}
//-----------------------------------------------------------------------------
+void SLEPcEigenSolver::set_deflation_space(const PETScVector& deflation_space)
+{
+ EPSSetDeflationSpace(eps, 1, const_cast<Vec*>(deflation_space.vec().get()));
+}
+//-----------------------------------------------------------------------------
void SLEPcEigenSolver::solve(const PETScMatrix* A,
const PETScMatrix* B,
uint n)
=== modified file 'dolfin/la/SLEPcEigenSolver.h'
--- dolfin/la/SLEPcEigenSolver.h 2010-10-01 08:47:12 +0000
+++ dolfin/la/SLEPcEigenSolver.h 2010-10-12 07:35:58 +0000
@@ -149,6 +149,9 @@
// Get the number of converged eigenvalues
int get_number_converged();
+ // Set deflation space
+ void set_deflation_space(const PETScVector& deflation_space);
+
/// Default parameter values
static Parameters default_parameters()
{
# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWeljvloABprfgFAQUXf//38m
3cC////6YAppmr55PAUAALO73et3ae5gAAeIA0SanpiRink1P1NT9TRHqAGgaDI0B6TTyIJJAmQa
AEQJPU09TINADQAAHqCUEQEjJtEMj0RpoAGjJoMgAAJNSk00mU9TymMNUPSaaANNNNqPUNGQAAcw
BGCYgGATBNGQ0MAmCMTCKRACJk0xMT0nqmmTyNCnqYo9QA0DQQEMQnoodvvBccQNzE/ELmMp0CwP
GcJlUwVNgvBfozbIbDvMzzZnotvhs1aw7a7oGZBCxwlJQKZPgD7Wti/WdCVgRcShO3PE4SVBHfTs
R7UXoZJmZmZhQ9NKJRAJIqKsqlSwtradqmjagRdiRSL0GNS3EJHaaSadXqjclelYaQ37llmrNFQ6
NCsLjkbxM2IddDlIYBDt+zAiUjXUQ2GQ1mQChPdGkEI1x4Goxvx1Uwd3rnOBVbcCAYLxFnhQ3tkB
K5pZoCCWTDEa/rfvQ6AdBrmFUyS7RWZmg8AgNF/Rdem0o5hnApppBvIhvCt4SOBBB5NCfqwoFraj
cZw88kNqnANoU4Ba5K7w6FOrVffoeHN8jwgIJsRw3/immCDeCnFLu6T0+tHkhrL9N1VRVUVWgv0V
5NGrBjISmW2IXiWayoMkYXyRtKhSxYhIMgGFBCoswroJK4k+Fdk+6bb2Fzcf7YClX1otLDboraaw
qVZkBeSnBcRH5MwDKdIudqQhGtUiVL4JFxWLx9xmwWh4BF3OAYb2m6VaxvUBDmimoE2eOx+MK5sA
kfNEeTU2Aj4gcbhZejS+ZVJcMkoXCCgWhfZlgkBu8+4yB3QiY3Pf1y2ZwWZdRxpea3uUOE7jFxik
poXkFIS98NwgYLJXnK2He3pdzQMYaEn7882+71SLSwvZJSe4DdE7jwTiJiHTTtbXsltRI4w0Gwvk
zUhmknhJwkh1SCQHsXgkZmnfYGNj5veSy1lA0NubIBcU3m6atGpSci7bIXDhjTVvp25pSopwMDcr
ZLaRhYQNWjTFSs1LLWJEQuZZA+L+xyRUei96Rs9OSH9t1907IjBKbGGVezMIXucYkSCLzk49c5nn
EiPp5pK7SFXP4auzpOvsigaRokudZNDSKA0hYV6kiqhuPWPZO3nYlUhkgcgdmEMY+BXVGmWMVcRJ
DUIK4ByDSUYF7r3ET/rEiS9Cjffap4OYdq+9VUbVVSZMyY6vMgpDLEqUvSJp0N++BjJ1UTJ3wiJa
7HNSUtS20NUjOBGJJ5c4y6zvfCk3jpJLxylqNfNJW2jYOM4q92tSeFw9nZdLNS2b+etRwF3Wm6M2
WwdQqIvK9sh5zc7frDaYQ5TdUjrbC2c2tycavlFnHeDIsKHJaQQgsiR1Hi6XD3EyB2JjPKU8FsGy
FN5EtcSjTXXJiEjQ87PSvBBtLDY7oPCmzgT3V3cRhVzhptBgxgaNVx2hoDw3JvLpxG6VvaA4zSNg
pwFXJF0GMdSBAhl4c4vdRRSUCrZVfa0XOi8E7JtVF5NJOSXTyW1LiTzO4tKMSftPik9LDIiejLpC
rlwHCYMYNvhf4pLEhbjOz4FzYkU1wCQpXRNpiiHDwdsDbgzBeGZmzvCl1NIUIUhJGArCLK0JI5hZ
m9vAh4OWLHzQNIUGPhUWRM8l6ijDWHnh0bAzz2Tca4yQNvAZTPFBFkWKbcP+/SrP3Cqi1qFF/AA9
PISeobLRGVlqt0syU34igu3YQPXEsZQy6AylfxEhu9J2bB4hpQD/cjsZal2ctGkGYyLxSCghoDxz
xEIiWKzKCqAJ05scwgZDNqNz8SE5S245+bsptLnpTcdU3dcDNcVlOHfMWfUGAkxIf2fYNb/Lv1O8
DgFoVZgh6tb2yFK0zHS7OOSGwBlCCjjkIdchD44d0kTSPTfmO2bMxKYBcBOwxt0SYTwoNIbjKUox
f1RqIwflIKoZ0EPZ3NgUTBTLvLdEsGUW0Juz0s3SU7Z2FH+Xw5+qfyrNOTzo/6+2O8jbrU7NR1mw
DZssOG4PPcfQJY9ELphdC6l4JMoo6BUWubknHWDNixUg0I4bFRrzgsTd6xL0Z5TDdUTijoWC+AU1
ErbpZi39CrE48SW3vYN09+948UI2hXqDv90J3mXqkcSA9SI9HGdKbJyInfWbJqTq4FjJ0vFeYIKG
oHLIHtbHJJK1jSILC0NSMvGpnm4k3dT2I5R6TcZasyZOXCMRJlht+iB56zDjztPI9TzjDdV4t8lH
ujIcF/bnrhEO8KDzuMPyYW0qDQF12iy4JcNZNNHdh/gKAPUv561mhrBhHenn7Ie9K35agnQbPpgG
zoFAG740EVj+bYGIdOp1IF4HULgEPl8zfzMceBxo4koKCVnrGRbSaZc9xO8rL4MItsjkhUaUPwnw
mwDwCkDymPQD1CZQSVC58VIVo33r6H1bXg1ocykggNgS462fyELGXw8lErKIOVKHDYjY5h7A0vWG
Aag+BYCoPfqCHSh+G4Ox4CFYGYFN3cfeD6i1B19Z7Ke+QbwpD75syMQEDqQPQLgddKeHLle51MfF
2B+cw9wuVChxF7wxhTN9HEAysQKAmAfwDaGcFOAFghSVpYGBuCsNpReEATQ5utSbW/DuE+TYawpA
7V6gMA+5cGYKgqQqRTRTEAfDCSYU2uCUpWEC0QEBDLuDarIOKkPoCk20K0hCtSAYhH4kDqe21nWA
mzLKYeyvar6R/dqDDIPXwyYgjFc6DT4hNLk0AGkTfIHXvCniUsEDAYBhDw344hNIR4JWh88A/Txi
MnN1oX3BcJpzBK4nJGxWO5g5hSL5h46f/XCl4cgoQtMNsC3CfZWU9ISpCm2AUBmCznC3UDJYFpkx
rySpviKDkhxzoCQ44BZC8vG4EqJQJUSgSq9AZZO+iij2MOFbyxHETMFkzK0HMZCS1LHb4y7gVpmw
YtoTPr5qVUxWFcSk1p7CTGwkEGkM4nEK33bQ7uH0DSBQBmUtfmZxZg9JUwQDOVd6zR3hX+SuSH2U
qDullhgonw+YKdArQ/ZDn0dga3dnDEvisHtAzKJ+u3KLEDXzP9E7WAtQhqx736qdyn2Y80OXK0Wj
5DtgDAXsV95tyG7wOSlKnl4b+vMPRTmpoDcH/xdyRThQkOljvlo=
Follow ups