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

Problem with creation of new BC fixing it to a patch using refCast

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

Reply
 
LinkBack Thread Tools Display Modes
Old   April 26, 2014, 10:44
Default Problem with creation of new BC fixing it to a patch using refCast
  #1
New Member
 
Join Date: Feb 2012
Posts: 28
Rep Power: 5
Matt_B is on a distinguished road
Hi guys,
I already opened a post talking about my problems in setting a new BC to a patch, using refCast method; the post is located here: New BC patch definition: typeInfo problem with refCast
I did some new steps further, but now I have troubles to compile the library.
As I explained in the previous post, I thought the possible solution to the problem of lack in identification of my new Boundary Condition also as a new type to be used by refCast method, could be in the macros written at the end of fvPatchField.H.
Therefore I tried to use these macros in some ways, taking inspiration by reading other already compiled BCs. I looked at calculatedFvPatchField as an example and I tried to reproduce same code arrangement; in 'calculated' folder I find the following headers:

calculatedFvPatchField.C
calculatedFvPatchField.H
calculatedFvPatchFields.C
calculatedFvPatchFields.H
calculatedFvPatchFieldsFwd.H

I did the same for my headers:

myGradientEnthalpyFvPatchScalarField.C
myGradientEnthalpyFvPatchScalarField.H
myGradientEnthalpyFvPatchScalarFields.C
myGradientEnthalpyFvPatchScalarFields.H
myGradientEnthalpyFvPatchScalarFieldsFwd.H

The content of the headers in which are called the macros are the following:

myGradientEnthalpyFvPatchScalarFields.C
Code:
namespace Foam
{

// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

makePatchTypeField
(
    fvPatchScalarField,
    myGradientEnthalpyFvPatchScalarField
);

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace Foam
myGradientEnthalpyFvPatchScalarFields.H

Code:
#ifndef myGradientEnthalpyFvPatchFields_H
#define myGradientEnthalpyFvPatchFields_H

#include "myGradientEnthalpyFvPatchScalarField.H"
#include "fieldTypes.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

template<class Scalar> class myGradientEnthalpyFvPatchField;

makePatchTypeFieldTypedefs(myGradientEnthalpy);

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif
myGradientEnthalpyFvPatchScalarFieldsFwd.H

Code:
#ifndef myGradientEnthalpyFvPatchFieldsFwd_H
#define myGradientEnthalpyFvPatchFieldsFwd_H

#include "fieldTypes.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

template<class Scalar> class myGradientEnthalpyFvPatchField;

makePatchTypeFieldTypedefs(myGradientEnthalpy);

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif
The error that comes out after making an attempt to compile the library is as here attached:
Code:
Making dependency list for source file myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.C
SOURCE=myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O0 -fdefault-inline -ggdb3 -DFULLDEBUG -DNoRepository -ftemplate-depth-100 -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/meshTools/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/turbulenceModels/compressible/turbulenceModel/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/turbulenceModels/compressible/matteoBC/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/basic/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/specie/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/basicSolidThermo/lnInclude  -IlnInclude -I. -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.1.1/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linux64GccDPDebug/myGradientEnthalpyFvPatchScalarFields.o
In file included from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/Field.H:360:0,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/labelField.H:39,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/primitiveFields.H:37,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/pointField.H:36,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/edge.H:40,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/edgeList.H:32,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/PrimitivePatch.H:56,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/primitivePatch.H:35,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/polyPatch.H:43,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fvPatch.H:39,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fvPatchField.H:47,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fixedGradientFvPatchField.H:38,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fixedGradientFvPatchFields.H:29,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/basic/lnInclude/gradientEnthalpyFvPatchScalarField.H:38,
                 from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarField.H:52,
                 from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.H:29,
                 from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.C:26:
/opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/Field.C: In member function ‘void Foam::Field<Type>::operator=(const Foam::VectorSpace<Form, Cmpt, nCmpt>&)’:
/opt/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/Field.C:680:42: warning: typedef ‘VSType’ locally defined but not used [-Wunused-local-typedefs]
     typedef VectorSpace<Form,Cmpt,nCmpt> VSType;
                                          ^
In file included from /opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fixedGradientFvPatchField.H:38:0,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fixedGradientFvPatchFields.H:29,
                 from /opt/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/basic/lnInclude/gradientEnthalpyFvPatchScalarField.H:38,
                 from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarField.H:52,
                 from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.H:29,
                 from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.C:26:
myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.H: At global scope:
myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.H:43:28: error: conflicting declaration ‘typedef class Foam::myGradientEnthalpyFvPatchField<double> Foam::myGradientEnthalpyFvPatchScalarField’
 makePatchTypeFieldTypedefs(myGradientEnthalpy);
                            ^
/opt/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fvPatchField.H:597:40: note: in definition of macro ‘makePatchTypeFieldTypedefs’
     typedef type##FvPatchField<scalar> type##FvPatchScalarField;              \
                                        ^
In file included from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.H:29:0,
                 from myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarFields.C:26:
myGradientEnthalpyFvPatchScalarField/myGradientEnthalpyFvPatchScalarField.H:66:7: error: ‘class Foam::myGradientEnthalpyFvPatchScalarField’ has a previous declaration as ‘class Foam::myGradientEnthalpyFvPatchScalarField’
 class myGradientEnthalpyFvPatchScalarField
       ^
make: *** [Make/linux64GccDPDebug/myGradientEnthalpyFvPatchScalarFields.o] Error 1
I'm sure I didn't use in a proper way the macros supplied by openFoam.
Could someone tell me how to do it better?

Thank you all.

Matteo
Matt_B is offline   Reply With Quote

Reply

Tags
refcast, typedef

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
problem with surface creation in ICEM from multiple curves dialolema ANSYS Meshing & Geometry 2 October 27, 2014 14:14
Single volume Mesh gmsh PeteH Open Source Meshers: Gmsh, Netgen, CGNS, ... 9 August 6, 2013 08:54
Cyclic patch problem! SMartella OpenFOAM Meshing & Mesh Conversion 4 November 14, 2012 05:42
AMI speed performance danny123 OpenFOAM 19 October 24, 2012 07:44
Multicomponent fluid Andrea CFX 2 October 11, 2004 05:12


All times are GMT -4. The time now is 18:36.