CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Running, Solving & CFD

Does anyone work with curl in OpenFoam

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   December 15, 2005, 06:07
Default Hi, all. Does anyone work wit
  #1
Member
 
Efimenko Evgenii
Join Date: Mar 2009
Location: Nizhnij Novgorod, Russia
Posts: 52
Rep Power: 8
evgenii is on a distinguished road
Hi, all.
Does anyone work with curl in OpenFoam?
I have some problems with it.
Hope to get some help or advice.

I wrote:

solve(
mu0*fvm::ddt(E)
+ fvc::curl(H)
);

solve(
epsilon0*fvm::ddt(H)
+ fvc::curl(E)
);


E,H - volVectorField, mu0, epsilon0 - dimensionedScalar

When I try to compile following error appears:
no matching function to call for solve(...)

Where am I mistaken?
Thank you.
Eugene
evgenii is offline   Reply With Quote

Old   December 15, 2005, 06:17
Default Hello Eugene, Did you try f
  #2
galaad
Guest
 
Posts: n/a
Hello Eugene,

Did you try fvm instead of fvc:

solve(
mu0*fvm::ddt(E)
+ fvm::curl(H)
);

I think it's not a problem with curl but a syntax problem. Had you also define the equation to solve... for example:

tmp<fvvectormatrix> EEqn
(
mu0*fvm::ddt(E)
+ fvm::curl(H)
);
EEqn().relax();
EEqn().solve();

Try this and tell me :-).

Fred
  Reply With Quote

Old   December 15, 2005, 06:22
Default Or this... tmp
  #3
galaad
Guest
 
Posts: n/a
Or this...

tmp<fvvectormatrix> EEqn
(
mu0*fvm::ddt(E)
==
- fvc::curl(H)
);
EEqn().relax();
EEqn().solve();

The variable to solve in the left part of the equation and the source term on the right one.

Fred
  Reply With Quote

Old   December 15, 2005, 06:31
Default Thank you so much! It's now co
  #4
Member
 
Efimenko Evgenii
Join Date: Mar 2009
Location: Nizhnij Novgorod, Russia
Posts: 52
Rep Power: 8
evgenii is on a distinguished road
Thank you so much! It's now compiling succesfully (How it works I'll know later )
There is only fvc::curl, there's no fvm::curl.
But you are right, I needed to define an equation in manner you gave.
evgenii is offline   Reply With Quote

Old   December 15, 2005, 06:54
Default Curl only comes in the explici
  #5
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,758
Rep Power: 21
hjasak will become famous soon enough
Curl only comes in the explicit version (fvc) because the implicit one couples the components of the vector. The current matrix support cannot handle that but the new version (block matrix) will come in due course). So, there's no fvm::curl at the moment.

As for the calculation of the curl, have a look at fvcCurl.C. There are two implementations

- the one based on the Gauss Theorem is commented out.

- the one with the Hodge dual is active and allows you to use your favourite gradient calculation algorithm

Enjoy,

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   December 15, 2005, 07:06
Default Thanks Hrv for your comment an
  #6
galaad
Guest
 
Posts: n/a
Thanks Hrv for your comment and your advices .
  Reply With Quote

Old   December 15, 2005, 07:44
Default Thank for comments Hrv, it is
  #7
Member
 
Efimenko Evgenii
Join Date: Mar 2009
Location: Nizhnij Novgorod, Russia
Posts: 52
Rep Power: 8
evgenii is on a distinguished road
Thank for comments Hrv, it is very useful as usual
evgenii is offline   Reply With Quote

Old   February 14, 2007, 12:31
Default Hi all, i am trying to implem
  #8
New Member
 
Sergej Gorchakov
Join Date: Mar 2009
Location: Germany
Posts: 5
Rep Power: 8
gort is on a distinguished road
Hi all,
i am trying to implement the following equation in the solver
curl(B)=mu0*j
B and j are volVectorField and mu0 is dimensionedScalar
mu0 and j are known.
Corresponding entry in the solver is
solve (fvc::curl(B)==mu0*j)
The "response" of compiler is
error: no match for 'operator==' in 'Foam::fvc::curl(const Foam::GeometricField<type,>&) [with Type = Foam::Vector<double>]() == 0'
/shared/home/gort//OpenFOAM/OpenFOAM-1.3/src/OpenFOAM/lnInclude/cellModelI.H:124 : note: candidates are: bool Foam::operator==(const Foam::cellModel&, const Foam::cellModel&)
/shared/home/gort//OpenFOAM/OpenFOAM-1.3/src/OpenFOAM/lnInclude/edgeI.H:147: note: bool Foam::operator==(const Foam::edge&, const Foam::edge&)

What is the right FOAM syntax for this equation? Will be happy for any advises.

Best regards,
Sergej
gort is offline   Reply With Quote

Old   October 15, 2010, 11:30
Default
  #9
Senior Member
 
Matthias Voß
Join Date: Mar 2009
Location: Berlin, Germany
Posts: 446
Rep Power: 11
mvoss is on a distinguished road
hi,

since this is looong time ago... did you managed to solve your curl(B)=mu0*j with OF ??

neewbie
mvoss is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Curl Velocity Cardero CFX 0 March 5, 2009 11:24
what is Velocity Curl? CFD newbie Main CFD Forum 3 July 4, 2008 13:35
About curl evgenii OpenFOAM Running, Solving & CFD 2 December 14, 2005 09:15
Work anybody with OpenFOAM in Berlin Germany ingolf OpenFOAM Running, Solving & CFD 0 September 21, 2005 08:27
Will OpenFoam work on Xeon segersson OpenFOAM Installation 2 May 2, 2005 08:45


All times are GMT -4. The time now is 17:57.