
[Sponsors] 
October 21, 2013, 11:33 
Defining a Matrix in OpenFOAM1.6ext

#1 
Senior Member
Daniel
Join Date: Mar 2013
Posts: 172
Rep Power: 9 
Hello foamers
I am trying to define a Matrix in my OpenFOAM solver but I have a few problems. I try to describe my problem with an example: Assuming I want to define a Matrix in the solver, this is what I do: Matrix<scalar> A(n, m, 0.0); Now when I want to compile the solver, it gives me the following error: Code:
setInterfaceDisplacement.H:98: error: wrong number of template arguments (1, should be 2) /opt/OpenFOAM/OpenFOAM1.6ext/src/OpenFOAM/lnInclude/Matrix.H:54: error: provided for ‘template<class Form, class Type> class Foam::Matrix’ regards 

November 26, 2013, 11:45 

#2 
New Member
Camille Bilger
Join Date: Jul 2013
Posts: 15
Rep Power: 3 
Hi,
I am encountering the same problem and would be grateful if you could share how you resolved this problem. Thank you very much. 

November 26, 2013, 18:11 

#3 
Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,251
Blog Entries: 34
Rep Power: 84 
Greetings to all!
Actually, while I was tracking kmou's posts, this previous thread gave the hint: http://www.cfdonline.com/Forums/ope...tcompile.html The solution seems to be to use "scalarSquareMatrix" instead of "Matrix<scalar>". A bit more explanation:
Best regards, Bruno
__________________


November 27, 2013, 12:46 

#4 
Senior Member
Daniel
Join Date: Mar 2013
Posts: 172
Rep Power: 9 
thanks for the suggestion...
I had resolved that issue a few weeks ago. I have changed the declaration as follow: Matrix <scalarField,scalar> A (n,m)  squareScalarMatrix is working fine on square matrices but how can I define a matrix with one column or one row? like this one: Matrix <scalarField,scalar> A (n,1) or A (1,n)  OK I have fixed the last one by using rectangular matrix 

November 27, 2013, 14:26 

#5  
Senior Member
Daniel
Join Date: Mar 2013
Posts: 172
Rep Power: 9 
Quote:
#include "scalarSquareMatrix.H" >> for square type matrix if you want to define a square matrix: A (n,n) and initiate it with 0 scalarSquareMatrix A(n, 0.0); #include "RectangularMatrix.H" >> for rectangular matrix if you want to define a rectangular matrix: A (n,m) RectangularMatrix <scalar> A(n,m); 

December 2, 2013, 06:06 

#6 
New Member
Camille Bilger
Join Date: Jul 2013
Posts: 15
Rep Power: 3 
Thank you Daniel and Bruno for your replies.
So new classes of matrices have been created, such as SquareMatrix and RectangularMatrix, which effectively correspond do the "Form" that is required. Thus, for each Matrix<scalar> that I have, I will need to make a decision as to if it is a Square matrix, or a Rectangular matrix or Diagonal matrix etc... 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Solver Compiling error  OF 1.6 ext.  raditz  OpenFOAM Programming & Development  8  November 4, 2012 10:53 
OpenFOAM 1.6 and 1.7 with interFoam, groovyBC give different strange results  Arnoldinho  OpenFOAM  7  December 9, 2010 17:29 
Crosscompiling OpenFOAM 1.7.0 on Linux for Windows 32 and 64bits with Mingww64  wyldckat  OpenFOAM Announcements from Other Sources  3  September 8, 2010 06:25 
Crosscompiling OpenFOAM 1.6 on Linux for Windows 32 and 64bits with Mingww64  wyldckat  OpenFOAM Announcements from Other Sources  7  January 19, 2010 16:39 
OpenFOAM version 1.6 details  lakeat  OpenFOAM Running, Solving & CFD  42  August 26, 2009 21:47 