Go to the documentation of this file.
20#ifndef OPM_EXPORT_SYSTEM_HEADER_INCLUDED
21#define OPM_EXPORT_SYSTEM_HEADER_INCLUDED
30 template < class IstlMatrix>
32 template < class IstlMatrix>
33 void exportNonzeros( const IstlMatrix& A, const char *tag= "", const char *path= ".");
34 template < class GlobalEqVector>
35 void exportVector( const GlobalEqVector& x, const char *tag= "", const char *name= "export/x");
40 template < class IstlMatrix, class GlobalEqVector>
43 const GlobalEqVector& residual,
44 const bool export_sparsity,
46 const char* path = "export")
49 if (export_sparsity) {
57 constexpr size_t bufsize = 256;
59 std::snprintf(name,bufsize, "%s/r",path);
66 template < class GlobalEqVector>
67 void exportVector( const GlobalEqVector& x, const char *tag, const char *name)
70 const double *data = &x[0][0];
72 constexpr size_t bufsize = 512;
73 char filename[bufsize];
74 std::snprintf(filename,bufsize, "%s%s.f64",name,tag);
75 FILE *out =fopen(filename, "w");
76 std::fwrite(data, sizeof( double), x.dim(),out);
83 template < class IstlMatrix>
87 const double *data = &A[0][0][0][0];
88 size_t dim = A[0][0].N()*A[0][0].M()*A.nonzeroes();
90 constexpr size_t bufsize = 256;
91 char filename[bufsize];
92 std::snprintf(filename,bufsize, "%s/data%s.f64",path,tag);
93 FILE *out =fopen(filename, "w");
94 std::fwrite(data, sizeof( double), dim,out);
101 template < class IstlMatrix>
105 auto rows = std::make_unique<int[]>(A.N()+1);
106 auto cols = std::make_unique<int[]>(A.nonzeroes());
111 for( auto row=A.begin(); row!=A.end(); row++)
113 for( unsigned int i=0;i<row->getsize();i++)
115 cols[icol++]=row->getindexptr()[i];
117 rows[irow+1]= rows[irow]+row->getsize();
123 constexpr size_t bufsize = 256;
124 char filename[bufsize];
126 std::snprintf(filename,bufsize, "%s/rows.i32",path);
127 out=std::fopen(filename, "w");
128 std::fwrite(rows.get(), sizeof( int), A.N()+1,out);
131 std::snprintf(filename,bufsize, "%s/cols.i32",path);
132 out=std::fopen(filename, "w");
133 std::fwrite(cols.get(), sizeof( int), A.nonzeroes(),out);
static constexpr int dim Definition: structuredgridvanguard.hh:68
Definition: blackoilbioeffectsmodules.hh:43
void exportNonzeros(const IstlMatrix &A, const char *tag="", const char *path=".") Export nonzero blocks of jacobian block-sparse matrix. Definition: exportSystem.hpp:84
void exportSparsity(const IstlMatrix &A, const char *path=".") Export sparsity pattern of jacobian block-sparse matrix. Definition: exportSystem.hpp:102
void exportVector(const GlobalEqVector &x, const char *tag="", const char *name="export/x") Export block vector. Definition: exportSystem.hpp:67
void exportSystem(const IstlMatrix &jacobian, const GlobalEqVector &residual, const bool export_sparsity, const char *tag, const char *path="export") Export blocks-sparse linear system. Definition: exportSystem.hpp:42
|