今野先生
ご回答ありがとうございます.
上記方法で改良ソルバをwmakeしてみましたが,以下のようなエラーが出てしまいました.
no matching function for … とありますが,GeometricFieldの定義に問題があるのでしょうか…
個人的には「各セル表面の面積」,「単位法線ベクトル値」なども一緒に出力できれば都合が良いので,
magSf()やnf()も求めた上で,
できればohbuchi様のおっしゃるnf()を用いる方法と今野先生のshfが一致することも確認したいです.
アドバイスよろしくお願いします.
mou
[mou@localhost laplacianFoamExperiment_steady]$ wmake
SOURCE=laplacianFoamExperiment_steady.C ; g++ -m64 -Dlinux64 -DWM_DP -
Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor
-O3 -DNoRepository -ftemplate-depth-40 -I/home/mou/OpenFOAM/
OpenFOAM-1.7.1/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/mou/
OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude -I/home/mou/OpenFOAM/
OpenFOAM-1.7.1/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o
Make/linux64GccDPOpt/laplacianFoamExperiment_steady.o
In file included from laplacianFoamExperiment_steady.C:45:
createFields.H: In function ‘int main(int, char**)’:
createFields.H:94: error: no matching function for call to
‘Foam::GeometricField<double, Foam::fvsPatchField,
Foam::surfaceMesh>::GeometricField(Foam::IOobject,
Foam::tmp<Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> >)’
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:652: note: candidates are: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
Foam::GeometricField<Type, PatchField, GeoMesh>&, const
Foam::wordList&) [with Type = double, PatchField =
Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:617: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
Foam::GeometricField<Type, PatchField, GeoMesh>&, const Foam::word&)
[with Type = double, PatchField = Foam::fvsPatchField, GeoMesh =
Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:587: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::word&, const
Foam::tmp<Foam::GeometricField<Type, PatchField, GeoMesh> >&) [with
Type = double, PatchField = Foam::fvsPatchField, GeoMesh =
Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:554: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::word&, const
Foam::GeometricField<Type, PatchField, GeoMesh>&) [with Type = double,
PatchField = Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:522: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
Foam::GeometricField<Type, PatchField, GeoMesh>&) [with Type = double,
PatchField = Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:491: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const
Foam::tmp<Foam::GeometricField<Type, PatchField, GeoMesh> >&) [with
Type = double, PatchField = Foam::fvsPatchField, GeoMesh =
Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:459: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::GeometricField<Type,
PatchField, GeoMesh>&) [with Type = double, PatchField =
Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:420: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&, const Foam::dictionary&) [with Type = double,
PatchField = Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:381: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&, Foam::Istream&) [with Type = double,
PatchField = Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:341: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&) [with Type = double, PatchField =
Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:314: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&, const Foam::dimensionSet&, const
Foam::Field<Type>&, const Foam::PtrList<PatchField<Type> >&) [with
Type = double, PatchField = Foam::fvsPatchField, GeoMesh =
Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:285: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&, const Foam::dimensioned<Type>&, const
Foam::wordList&) [with Type = double, PatchField =
Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:256: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&, const Foam::dimensioned<Type>&, const
Foam::word&) [with Type = double, PatchField = Foam::fvsPatchField,
GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:229: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&, const Foam::dimensionSet&, const
Foam::wordList&) [with Type = double, PatchField =
Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:199: note: Foam::GeometricField<Type,
PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const
typename GeoMesh::Mesh&, const Foam::dimensionSet&, const Foam::word&)
[with Type = double, PatchField = Foam::fvsPatchField, GeoMesh =
Foam::surfaceMesh]
createFields.H:106: error: no matching function for call to
‘interpolate(Foam::surfaceScalarField&)’
laplacianFoamExperiment_steady.C:71: error: no match for ‘operator=’
in ‘hf = Foam::operator*(const Foam::tmp<Foam::GeometricField<double,
PatchField, GeoMesh> >&, const Foam::GeometricField<Type, PatchField,
GeoMesh>&) [with Type = Foam::Vector<double>, PatchField =
Foam::fvPatchField, GeoMesh = Foam::volMesh](((const
Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField,
Foam::volMesh>&)((const Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh>*)(& gradT))))’
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:1086: note: candidates are: void
Foam::GeometricField<Type, PatchField, GeoMesh>::operator=(const
Foam::GeometricField<Type, PatchField, GeoMesh>&) [with Type = double,
PatchField = Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:1111: note: void
Foam::GeometricField<Type, PatchField, GeoMesh>::operator=(const
Foam::tmp<Foam::GeometricField<Type, PatchField, GeoMesh> >&) [with
Type = double, PatchField = Foam::fvsPatchField, GeoMesh =
Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude/
GeometricField.C:1147: note: void
Foam::GeometricField<Type, PatchField, GeoMesh>::operator=(const
Foam::dimensioned<Type>&) [with Type = double, PatchField =
Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh]
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/finiteVolume/lnInclude/
readSIMPLEControls.H:6: warning: unused variable ‘momentumPredictor’
/home/mou/OpenFOAM/OpenFOAM-1.7.1/src/finiteVolume/lnInclude/
readSIMPLEControls.H:9: warning: unused variable ‘transonic’
make: *** [Make/linux64GccDPOpt/laplacianFoamExperiment_steady.o] エラー
1