CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (http://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Solving simultaneous algebraic equations for complex coefficients (http://www.cfd-online.com/Forums/openfoam-programming-development/101624-solving-simultaneous-algebraic-equations-complex-coefficients.html)

Hisham May 9, 2012 08:02

Solving simultaneous algebraic equations for complex coefficients
 
Dear Foamers,

I need to solve a system of linear equations using OpenFOAM (needed at each time step). The system has complex coefficients. I think the simpleMatrix is used for the solution of simultaneous linear algebraic equations.

Although the simpleMatrix::solve() returns a Field<type>
http://foam.sourceforge.net/docs/cpp...ce.html#l00074
Code:

00073 template<class Type>
00074 Foam::Field<Type> Foam::simpleMatrix<Type>::solve() const
00075 {
00076    scalarSquareMatrix tmpMatrix = *this;
00077    Field<Type> sourceSol = source_;
00078
00079    Foam::solve(tmpMatrix, sourceSol);
00080
00081    return sourceSol;
00082 }

It seems that it can solve only for real scalars. I need to solve for a complexField. Is it possible from within OF?

It would be nice if someone points me to an example of the simpleMatrix use?


Edit: As expected simpleMatrix works only for real scalars!

Best regards,
Hisham

mechy January 19, 2014 03:57

Dear Hisham
 
Dear Hisham
I have the same problem
and I want to solve a system of linear equation with complex coefficients
do you find how can it be solved ?

Best Regards

Hisham January 19, 2014 06:01

Hi mechy,

The Armadillo project was my solution:

http://arma.sourceforge.net/


Hope it helps you too!

Best regards,
Hisham

mechy January 19, 2014 10:09

Dear Hisham
you have used it separately or used it in openfoam ?
is it possible to use it in openfoam codes ?

Best Regards

Hisham January 19, 2014 10:18

In an OpenFOAM application, you just make sure that armadillo is installed on your system using Synaptic (or so). The lib names are: libarmadillo2 and libarmadillo-dev. You can try to compile it if you are more adventurous :-)

In the Make/options of your application add -larmadillo to EXE_LIBS:
Code:

EXE_LIBS = -lfiniteVolume \                                                                                                         
                      -larmadillo

Then follow the examples provided by the armadillo website. You would need to (of course) include proper armadillo headers to your app.

Best regards,
Hisham

mechy January 19, 2014 11:40

thanks for useful comments
Best Regards

mechy January 19, 2014 13:42

Dear Hisham
is it possible to couple OpenFoam and Aarmadillo
in other word, is it possible to transfer data between openfoam objects and Aarmadillo objects ?
Best Regards

j-avdeev March 1, 2014 11:09

Probably will useful.

http://openfoamwiki.net/index.php/Ho...lo_in_OpenFOAM


All times are GMT -4. The time now is 11:20.