COMP: avoid ambiguous construct from tmp - ddtSchemes

This commit is contained in:
Mark Olesen
2010-12-17 16:57:02 +01:00
parent 4c5ce4c8fb
commit 9d95a6f59d
5 changed files with 118 additions and 80 deletions

View File

@ -147,15 +147,19 @@ EulerD2dt2Scheme<Type>::fvcD2dt2
scalar halfRdeltaT2 = 0.5*rDeltaT2.value(); scalar halfRdeltaT2 = 0.5*rDeltaT2.value();
scalar quarterRdeltaT2 = 0.25*rDeltaT2.value(); scalar quarterRdeltaT2 = 0.25*rDeltaT2.value();
scalarField VV0rhoRho0 = const scalarField VV0rhoRho0
(
(mesh().V() + mesh().V0()) (mesh().V() + mesh().V0())
*(rho.internalField() + rho.oldTime().internalField()); * (rho.internalField() + rho.oldTime().internalField())
);
scalarField V0V00rho0Rho00 = const scalarField V0V00rho0Rho00
(
(mesh().V0() + mesh().V00()) (mesh().V0() + mesh().V00())
*( * (
rho.oldTime().internalField() rho.oldTime().internalField()
+ rho.oldTime().oldTime().internalField() + rho.oldTime().oldTime().internalField()
)
); );
return tmp<GeometricField<Type, fvPatchField, volMesh> > return tmp<GeometricField<Type, fvPatchField, volMesh> >
@ -207,8 +211,8 @@ EulerD2dt2Scheme<Type>::fvcD2dt2
{ {
dimensionedScalar halfRdeltaT2 = 0.5*rDeltaT2; dimensionedScalar halfRdeltaT2 = 0.5*rDeltaT2;
volScalarField rhoRho0 = rho + rho.oldTime(); const volScalarField rhoRho0(rho + rho.oldTime());
volScalarField rho0Rho00 = rho.oldTime() +rho.oldTime().oldTime(); const volScalarField rho0Rho00(rho.oldTime() +rho.oldTime().oldTime());
return tmp<GeometricField<Type, fvPatchField, volMesh> > return tmp<GeometricField<Type, fvPatchField, volMesh> >
( (
@ -258,8 +262,8 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
{ {
scalar halfRdeltaT2 = rDeltaT2/2.0; scalar halfRdeltaT2 = rDeltaT2/2.0;
scalarField VV0 = mesh().V() + mesh().V0(); const scalarField VV0(mesh().V() + mesh().V0());
scalarField V0V00 = mesh().V0() + mesh().V00(); const scalarField V0V00(mesh().V0() + mesh().V00());
fvm.diag() = (coefft*halfRdeltaT2)*VV0; fvm.diag() = (coefft*halfRdeltaT2)*VV0;
@ -318,9 +322,8 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
{ {
scalar halfRdeltaT2 = 0.5*rDeltaT2; scalar halfRdeltaT2 = 0.5*rDeltaT2;
scalarField VV0 = mesh().V() + mesh().V0(); const scalarField VV0(mesh().V() + mesh().V0());
const scalarField V0V00(mesh().V0() + mesh().V00());
scalarField V0V00 = mesh().V0() + mesh().V00();
fvm.diag() = rho.value()*(coefft*halfRdeltaT2)*VV0; fvm.diag() = rho.value()*(coefft*halfRdeltaT2)*VV0;
@ -379,15 +382,19 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
{ {
scalar quarterRdeltaT2 = 0.25*rDeltaT2; scalar quarterRdeltaT2 = 0.25*rDeltaT2;
scalarField VV0rhoRho0 = const scalarField VV0rhoRho0
(
(mesh().V() + mesh().V0()) (mesh().V() + mesh().V0())
*(rho.internalField() + rho.oldTime().internalField()); *(rho.internalField() + rho.oldTime().internalField())
);
scalarField V0V00rho0Rho00 = const scalarField V0V00rho0Rho00
(
(mesh().V0() + mesh().V00()) (mesh().V0() + mesh().V00())
*( *(
rho.oldTime().internalField() rho.oldTime().internalField()
+ rho.oldTime().oldTime().internalField() + rho.oldTime().oldTime().internalField()
)
); );
fvm.diag() = (coefft*quarterRdeltaT2)*VV0rhoRho0; fvm.diag() = (coefft*quarterRdeltaT2)*VV0rhoRho0;
@ -405,10 +412,13 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
{ {
scalar halfRdeltaT2 = 0.5*rDeltaT2; scalar halfRdeltaT2 = 0.5*rDeltaT2;
scalarField rhoRho0 = const scalarField rhoRho0
(rho.internalField() + rho.oldTime().internalField()); (
rho.internalField()
+ rho.oldTime().internalField()
);
scalarField rho0Rho00 = const scalarField rho0Rho00
( (
rho.oldTime().internalField() rho.oldTime().internalField()
+ rho.oldTime().oldTime().internalField() + rho.oldTime().oldTime().internalField()

View File

@ -43,7 +43,7 @@ namespace fv
template<class Type> template<class Type>
tmp<volScalarField> CoEulerDdtScheme<Type>::CorDeltaT() const tmp<volScalarField> CoEulerDdtScheme<Type>::CorDeltaT() const
{ {
surfaceScalarField cofrDeltaT = CofrDeltaT(); const surfaceScalarField cofrDeltaT(CofrDeltaT());
tmp<volScalarField> tcorDeltaT tmp<volScalarField> tcorDeltaT
( (
@ -154,7 +154,7 @@ CoEulerDdtScheme<Type>::fvcDdt
const dimensioned<Type>& dt const dimensioned<Type>& dt
) )
{ {
volScalarField rDeltaT = CorDeltaT(); const volScalarField rDeltaT(CorDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -213,7 +213,7 @@ CoEulerDdtScheme<Type>::fvcDdt
const GeometricField<Type, fvPatchField, volMesh>& vf const GeometricField<Type, fvPatchField, volMesh>& vf
) )
{ {
volScalarField rDeltaT = CorDeltaT(); const volScalarField rDeltaT(CorDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -265,7 +265,7 @@ CoEulerDdtScheme<Type>::fvcDdt
const GeometricField<Type, fvPatchField, volMesh>& vf const GeometricField<Type, fvPatchField, volMesh>& vf
) )
{ {
volScalarField rDeltaT = CorDeltaT(); const volScalarField rDeltaT(CorDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -317,7 +317,7 @@ CoEulerDdtScheme<Type>::fvcDdt
const GeometricField<Type, fvPatchField, volMesh>& vf const GeometricField<Type, fvPatchField, volMesh>& vf
) )
{ {
volScalarField rDeltaT = CorDeltaT(); const volScalarField rDeltaT(CorDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -510,7 +510,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
} }
else else
{ {
volScalarField rDeltaT = CorDeltaT(); const volScalarField rDeltaT(CorDeltaT());
return tmp<fluxFieldType> return tmp<fluxFieldType>
( (
@ -565,7 +565,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
} }
else else
{ {
volScalarField rDeltaT = CorDeltaT(); const volScalarField rDeltaT(CorDeltaT());
if if
( (

View File

@ -157,7 +157,7 @@ SLTSDdtScheme<Type>::fvcDdt
const dimensioned<Type>& dt const dimensioned<Type>& dt
) )
{ {
volScalarField rDeltaT = SLrDeltaT(); const volScalarField rDeltaT(SLrDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -216,7 +216,7 @@ SLTSDdtScheme<Type>::fvcDdt
const GeometricField<Type, fvPatchField, volMesh>& vf const GeometricField<Type, fvPatchField, volMesh>& vf
) )
{ {
volScalarField rDeltaT = SLrDeltaT(); const volScalarField rDeltaT(SLrDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -268,7 +268,7 @@ SLTSDdtScheme<Type>::fvcDdt
const GeometricField<Type, fvPatchField, volMesh>& vf const GeometricField<Type, fvPatchField, volMesh>& vf
) )
{ {
volScalarField rDeltaT = SLrDeltaT(); const volScalarField rDeltaT(SLrDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -320,7 +320,7 @@ SLTSDdtScheme<Type>::fvcDdt
const GeometricField<Type, fvPatchField, volMesh>& vf const GeometricField<Type, fvPatchField, volMesh>& vf
) )
{ {
volScalarField rDeltaT = SLrDeltaT(); const volScalarField rDeltaT(SLrDeltaT());
IOobject ddtIOobject IOobject ddtIOobject
( (
@ -515,7 +515,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
} }
else else
{ {
volScalarField rDeltaT = SLrDeltaT(); const volScalarField rDeltaT(SLrDeltaT());
return tmp<fluxFieldType> return tmp<fluxFieldType>
( (
@ -570,7 +570,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
} }
else else
{ {
volScalarField rDeltaT = SLrDeltaT(); const volScalarField rDeltaT(SLrDeltaT());
if if
( (

View File

@ -143,7 +143,8 @@ boundedBackwardDdtScheme::fvcDdt
// Calculate unboundedness indicator // Calculate unboundedness indicator
// Note: all times moved by one because access to internal field // Note: all times moved by one because access to internal field
// copies current field into the old-time level. // copies current field into the old-time level.
volScalarField phict = const volScalarField phict
(
mag mag
( (
vf.oldTime().oldTime() vf.oldTime().oldTime()
@ -156,13 +157,16 @@ boundedBackwardDdtScheme::fvcDdt
- vf.oldTime().oldTime() - vf.oldTime().oldTime()
) )
+ dimensionedScalar("small", vf.dimensions(), VSMALL) + dimensionedScalar("small", vf.dimensions(), VSMALL)
)
); );
volScalarField limiter(pos(phict) - pos(phict - scalar(1))); const volScalarField limiter(pos(phict) - pos(phict - scalar(1)));
const volScalarField coefft(scalar(1) + limiter*deltaT/(deltaT + deltaT0));
volScalarField coefft = scalar(1) + limiter*deltaT/(deltaT + deltaT0); const volScalarField coefft00
volScalarField coefft00 = limiter*sqr(deltaT)/(deltaT0*(deltaT + deltaT0)); (
volScalarField coefft0 = coefft + coefft00; limiter*sqr(deltaT)/(deltaT0*(deltaT + deltaT0))
);
const volScalarField coefft0(coefft + coefft00);
if (mesh().moving()) if (mesh().moving())
{ {
@ -238,7 +242,8 @@ boundedBackwardDdtScheme::fvcDdt
// Calculate unboundedness indicator // Calculate unboundedness indicator
// Note: all times moved by one because access to internal field // Note: all times moved by one because access to internal field
// copies current field into the old-time level. // copies current field into the old-time level.
volScalarField phict = const volScalarField phict
(
mag mag
( (
vf.oldTime().oldTime() vf.oldTime().oldTime()
@ -251,13 +256,16 @@ boundedBackwardDdtScheme::fvcDdt
- vf.oldTime().oldTime() - vf.oldTime().oldTime()
) )
+ dimensionedScalar("small", vf.dimensions(), VSMALL) + dimensionedScalar("small", vf.dimensions(), VSMALL)
)
); );
volScalarField limiter(pos(phict) - pos(phict - scalar(1))); const volScalarField limiter(pos(phict) - pos(phict - scalar(1)));
const volScalarField coefft(scalar(1) + limiter*deltaT/(deltaT + deltaT0));
volScalarField coefft = scalar(1) + limiter*deltaT/(deltaT + deltaT0); const volScalarField coefft00
volScalarField coefft00 = limiter*sqr(deltaT)/(deltaT0*(deltaT + deltaT0)); (
volScalarField coefft0 = coefft + coefft00; limiter*sqr(deltaT)/(deltaT0*(deltaT + deltaT0))
);
const volScalarField coefft0(coefft + coefft00);
if (mesh().moving()) if (mesh().moving())
{ {
@ -333,7 +341,8 @@ boundedBackwardDdtScheme::fvcDdt
// Calculate unboundedness indicator // Calculate unboundedness indicator
// Note: all times moved by one because access to internal field // Note: all times moved by one because access to internal field
// copies current field into the old-time level. // copies current field into the old-time level.
volScalarField phict = const volScalarField phict
(
mag mag
( (
rho.oldTime().oldTime()*vf.oldTime().oldTime() rho.oldTime().oldTime()*vf.oldTime().oldTime()
@ -346,13 +355,16 @@ boundedBackwardDdtScheme::fvcDdt
- rho.oldTime().oldTime()*vf.oldTime().oldTime() - rho.oldTime().oldTime()*vf.oldTime().oldTime()
) )
+ dimensionedScalar("small", rho.dimensions()*vf.dimensions(), VSMALL) + dimensionedScalar("small", rho.dimensions()*vf.dimensions(), VSMALL)
)
); );
volScalarField limiter(pos(phict) - pos(phict - scalar(1))); const volScalarField limiter(pos(phict) - pos(phict - scalar(1)));
const volScalarField coefft(scalar(1) + limiter*deltaT/(deltaT + deltaT0));
volScalarField coefft = scalar(1) + limiter*deltaT/(deltaT + deltaT0); const volScalarField coefft00
volScalarField coefft00 = limiter*sqr(deltaT)/(deltaT0*(deltaT + deltaT0)); (
volScalarField coefft0 = coefft + coefft00; limiter*sqr(deltaT)/(deltaT0*(deltaT + deltaT0))
);
const volScalarField coefft0(coefft + coefft00);
if (mesh().moving()) if (mesh().moving())
{ {
@ -434,7 +446,8 @@ boundedBackwardDdtScheme::fvmDdt
// Calculate unboundedness indicator // Calculate unboundedness indicator
// Note: all times moved by one because access to internal field // Note: all times moved by one because access to internal field
// copies current field into the old-time level. // copies current field into the old-time level.
scalarField phict = const scalarField phict
(
mag mag
( (
vf.oldTime().oldTime().internalField() vf.oldTime().oldTime().internalField()
@ -447,13 +460,16 @@ boundedBackwardDdtScheme::fvmDdt
- vf.oldTime().oldTime().internalField() - vf.oldTime().oldTime().internalField()
) )
+ VSMALL + VSMALL
)
); );
scalarField limiter(pos(phict) - pos(phict - 1.0)); const scalarField limiter(pos(phict) - pos(phict - 1.0));
const scalarField coefft(1.0 + limiter*deltaT/(deltaT + deltaT0));
scalarField coefft = 1.0 + limiter*deltaT/(deltaT + deltaT0); const scalarField coefft00
scalarField coefft00 = limiter*deltaT*deltaT/(deltaT0*(deltaT + deltaT0)); (
scalarField coefft0 = coefft + coefft00; limiter*deltaT*deltaT/(deltaT0*(deltaT + deltaT0))
);
const scalarField coefft0(coefft + coefft00);
fvm.diag() = (coefft*rDeltaT)*mesh().V(); fvm.diag() = (coefft*rDeltaT)*mesh().V();
@ -504,7 +520,8 @@ boundedBackwardDdtScheme::fvmDdt
// Calculate unboundedness indicator // Calculate unboundedness indicator
// Note: all times moved by one because access to internal field // Note: all times moved by one because access to internal field
// copies current field into the old-time level. // copies current field into the old-time level.
scalarField phict = const scalarField phict
(
mag mag
( (
vf.oldTime().oldTime().internalField() vf.oldTime().oldTime().internalField()
@ -517,13 +534,16 @@ boundedBackwardDdtScheme::fvmDdt
- vf.oldTime().oldTime().internalField() - vf.oldTime().oldTime().internalField()
) )
+ VSMALL + VSMALL
)
); );
scalarField limiter(pos(phict) - pos(phict - 1.0)); const scalarField limiter(pos(phict) - pos(phict - 1.0));
const scalarField coefft(1.0 + limiter*deltaT/(deltaT + deltaT0));
scalarField coefft = 1.0 + limiter*deltaT/(deltaT + deltaT0); const scalarField coefft00
scalarField coefft00 = limiter*deltaT*deltaT/(deltaT0*(deltaT + deltaT0)); (
scalarField coefft0 = coefft + coefft00; limiter*deltaT*deltaT/(deltaT0*(deltaT + deltaT0))
);
const scalarField coefft0(coefft + coefft00);
fvm.diag() = (coefft*rDeltaT*rho.value())*mesh().V(); fvm.diag() = (coefft*rDeltaT*rho.value())*mesh().V();
@ -574,7 +594,8 @@ boundedBackwardDdtScheme::fvmDdt
// Calculate unboundedness indicator // Calculate unboundedness indicator
// Note: all times moved by one because access to internal field // Note: all times moved by one because access to internal field
// copies current field into the old-time level. // copies current field into the old-time level.
scalarField phict = const scalarField phict
(
mag mag
( (
rho.oldTime().oldTime().internalField()* rho.oldTime().oldTime().internalField()*
@ -591,13 +612,16 @@ boundedBackwardDdtScheme::fvmDdt
vf.oldTime().oldTime().internalField() vf.oldTime().oldTime().internalField()
) )
+ VSMALL + VSMALL
)
); );
scalarField limiter(pos(phict) - pos(phict - 1.0)); const scalarField limiter(pos(phict) - pos(phict - 1.0));
const scalarField coefft(1.0 + limiter*deltaT/(deltaT + deltaT0));
scalarField coefft = 1.0 + limiter*deltaT/(deltaT + deltaT0); const scalarField coefft00
scalarField coefft00 = limiter*deltaT*deltaT/(deltaT0*(deltaT + deltaT0)); (
scalarField coefft0 = coefft + coefft00; limiter*deltaT*deltaT/(deltaT0*(deltaT + deltaT0))
);
const scalarField coefft0(coefft + coefft00);
fvm.diag() = (coefft*rDeltaT)*rho.internalField()*mesh().V(); fvm.diag() = (coefft*rDeltaT)*rho.internalField()*mesh().V();

View File

@ -183,8 +183,10 @@ void Foam::fvc::spread
label facei = patch.start() + patchFacei; label facei = patch.start() + patchFacei;
label own = mesh.faceOwner()[facei]; label own = mesh.faceOwner()[facei];
scalarField alphapn = const scalarField alphapn
alpha.boundaryField()[patchi].patchNeighbourField(); (
alpha.boundaryField()[patchi].patchNeighbourField()
);
if if
( (
@ -283,8 +285,10 @@ void Foam::fvc::sweep
label facei = patch.start() + patchFacei; label facei = patch.start() + patchFacei;
label own = mesh.faceOwner()[facei]; label own = mesh.faceOwner()[facei];
scalarField alphapn = const scalarField alphapn
alpha.boundaryField()[patchi].patchNeighbourField(); (
alpha.boundaryField()[patchi].patchNeighbourField()
);
if (mag(alpha[own] - alphapn[patchFacei]) > alphaDiff) if (mag(alpha[own] - alphapn[patchFacei]) > alphaDiff)
{ {