# coordinate depending source term

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

 July 9, 2009, 13:55 coordinate depending source term #1 Member   Jagmohan Meena Join Date: May 2009 Posts: 30 Rep Power: 8 Dear Sir/Madam, I am doing a heat transfer problem with source term. Source term itself depends on the x,y,z, coordinates. I have tried following : Teqn: { fvScalarMatrix TEqn ( (rho)*(Cp)*fvm::ddt(T) + fvm::div(phi, T) - (rho)*(Cp)*fvm::laplacian(DT, T) == Q ); TEqn.relax(); eqnResidual = TEqn.solve().initialResidual(); maxResidual = max(eqnResidual, maxResidual); } Q is source term which is defined as: Info<< "Reading sourceProperties\n" << endl; IOdictionary sourceProperties ( IOobject ( "sourceProperties", runTime.constant(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ) ); dimensionedScalar Acos ( sourceProperties.lookup("Acos") ); dimensionedScalar Rcos ( sourceProperties.lookup("Rcos") ); dimensionedScalar Zcos ( sourceProperties.lookup("Zcos") ); dimensionedScalar Q("Q", Acos*cos(0.5*3.14*(sqrt((x[0]*x[0])+(x[1]*x[1])))/Rcos)*cos(0.5*3.14*x[2]/Zcos)); if (Q < 0.) { Q = 0.0; } Error: readSourceProperties.H: In function ‘int main(int, char**)’: readSourceProperties.H:30: erreur: ‘x’ was not declared in this scope readSourceProperties.H:32: erreur: no match for ‘operator<’ in ‘Q < 0.0’ make: *** [Make/linux64GccDPOpt/sourceBuoyantSimpleFoam.o] Erreur 1 I thought to use x[0] for x, x[1] for y and x[2] for z ! but OpenFOAM reports error in this. Hence my question is: How to input coordinates for Q so that it OpenFOAM will understand it ? thankyou in advance !! regards, JM

 July 12, 2009, 13:44 #2 Senior Member   Henrik Rusche Join Date: Mar 2009 Location: Braunschweig, Niedersachsen, Germany Posts: 275 Rep Power: 9 Dear jmmeena, 1) Use mesh.C().x() for the x-coordinate 2) Your coordinate dependant source should be a volScalarField 3) Use max-function to bound Q @ zero Henrik

 July 15, 2009, 04:16 #3 Senior Member   isabel Join Date: Apr 2009 Location: Spain Posts: 171 Rep Power: 8 Thank you very much, Henrik. I have wrotten these lines in my code: volScalarField x = mesh.C().x(); volScalarField y = mesh.C().y(); and I have this error in these lines (line 89 and line 90): isabel@isabel-desktop:~/OpenFOAM/isabel-1.5/applications/solvers/multiphase/interFoamModificado\$ wmake SOURCE=interFoamModificado.C ; g++ -m32 -Dlinux -DDP -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-40 -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/transportModels -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/transportModels/incompressible/lnInclude -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/transportModels/interfaceProperties/lnInclude -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/OSspecific/Unix/lnInclude -fPIC -pthread -c \$SOURCE -o Make/linuxGccDPOpt/interFoamModificado.o In file included from interFoamModificado.C:84: pEqn.H: In function ‘int main(int, char**)’: pEqn.H:89: error: ‘const struct Foam::GeometricField, Foam::fvPatchField, Foam::volMesh>’ has no member named ‘x’ pEqn.H:90: error: ‘const struct Foam::GeometricField, Foam::fvPatchField, Foam::volMesh>’ has no member named ‘y’ /home/isabel/OpenFOAM/OpenFOAM-1.5/src/finiteVolume/lnInclude/readPISOControls.H:3: warning: unused variable ‘nCorr’ make: *** [Make/linuxGccDPOpt/interFoamModificado.o] Error 1 isabel@isabel-desktop:~/OpenFOAM/isabel-1.5/applications/solvers/multiphase/interFoamModificado\$

 July 15, 2009, 04:37 #4 Senior Member   Henrik Rusche Join Date: Mar 2009 Location: Braunschweig, Niedersachsen, Germany Posts: 275 Rep Power: 9 Dear Isabel, dear jmmeena, stupid me ... vector v; Info << v.x(); // OK volVectorField vf; Info << vf.component(vector::X); // OK Henrik

 July 15, 2009, 04:55 #5 Senior Member   isabel Join Date: Apr 2009 Location: Spain Posts: 171 Rep Power: 8 Thank you very much, Henrik, but with these lines: vector v; Info << v.x(); volVectorField vf; Info << vf.component(vector::X); I have this error (line 90 is “volVectorField vf;”) : isabel@isabel-desktop:~/OpenFOAM/isabel-1.5/applications/solvers/multiphase/interFoamModificado\$ wmake Making dependency list for source file interFoamModificado.C SOURCE=interFoamModificado.C ; g++ -m32 -Dlinux -DDP -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-40 -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/transportModels -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/transportModels/incompressible/lnInclude -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/transportModels/interfaceProperties/lnInclude -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude -I/home/isabel/OpenFOAM/OpenFOAM-1.5/src/OSspecific/Unix/lnInclude -fPIC -pthread -c \$SOURCE -o Make/linuxGccDPOpt/interFoamModificado.o In file included from interFoamModificado.C:84: pEqn.H: In function ‘int main(int, char**)’: pEqn.H:90: error: no matching function for call to ‘Foam::GeometricField, Foam::fvPatchField, Foam::volMesh>::GeometricField()’ /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:611: note: candidates are: Foam::GeometricField::GeometricField(const Foam::IOobject&, const Foam::GeometricField&, const Foam::wordList&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:576: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const Foam::GeometricField&, const Foam::word&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:545: note: Foam::GeometricField::GeometricField(const Foam::word&, const Foam::tmp >&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:512: note: Foam::GeometricField::GeometricField(const Foam::word&, const Foam::GeometricField&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:480: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const Foam::GeometricField&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:448: note: Foam::GeometricField::GeometricField(const Foam::tmp >&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:416: note: Foam::GeometricField::GeometricField(const Foam::GeometricField&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:378: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const typename GeoMesh::Mesh&, Foam::Istream&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:337: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const typename GeoMesh::Mesh&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:313: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const typename GeoMesh::Mesh&, const Foam::dimensionSet&, const Foam::Field&, const Foam::PtrList >&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:283: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const typename GeoMesh::Mesh&, const Foam::dimensioned&, const Foam::wordList&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:254: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const typename GeoMesh::Mesh&, const Foam::dimensioned&, const Foam::word&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:227: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const typename GeoMesh::Mesh&, const Foam::dimensionSet&, const Foam::wordList&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C:197: note: Foam::GeometricField::GeometricField(const Foam::IOobject&, const typename GeoMesh::Mesh&, const Foam::dimensionSet&, const Foam::word&) [with Type = Foam::Vector, PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh] /home/isabel/OpenFOAM/OpenFOAM-1.5/src/finiteVolume/lnInclude/readPISOControls.H:3: warning: unused variable ‘nCorr’ make: *** [Make/linuxGccDPOpt/interFoamModificado.o] Error 1 isabel@isabel-desktop:~/OpenFOAM/isabel-1.5/applications/solvers/multiphase/interFoamModificado\$

July 15, 2009, 05:06
#6
Senior Member

Henrik Rusche
Join Date: Mar 2009
Location: Braunschweig, Niedersachsen, Germany
Posts: 275
Rep Power: 9
Dear Isabel,

Quote:
 class xyz;
was meant as a forward declaration and only actually works if the class has a null constructor and volVectorField does not. I just tried to say: "Given a volVectorField, do something like this".

Okay, you want to try:

Quote:
 volScalarField x = mesh.C().component(vector::X); volScalarField y = mesh.C().component(vector::Y);
Henrik

 July 15, 2009, 05:18 #7 Senior Member   isabel Join Date: Apr 2009 Location: Spain Posts: 171 Rep Power: 8 Thank you very much, Henrik. Now it works.

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post zwdi FLUENT 13 December 5, 2013 18:58 hjasak OpenFOAM Post-Processing 69 April 24, 2008 01:24 jens_klostermann OpenFOAM Bugs 11 June 28, 2007 17:51 Greg Perkins FLUENT 0 October 13, 2000 23:03 Greg Perkins FLUENT 0 October 11, 2000 03:43

All times are GMT -4. The time now is 08:37.