BUG: finiteArea: corrected reference access to tmps

This commit is contained in:
Andrew Heather
2017-11-06 11:54:20 +00:00
committed by Andrew Heather
parent 50d1ac15ef
commit 9ac1fa417b
9 changed files with 27 additions and 23 deletions

View File

@ -53,7 +53,7 @@ ddt
( (
mesh, mesh,
mesh.schemesDict().ddtScheme("ddt(" + dt.name() + ')') mesh.schemesDict().ddtScheme("ddt(" + dt.name() + ')')
)().facDdt(dt); ).ref().facDdt(dt);
} }
@ -68,7 +68,7 @@ ddt
( (
vf.mesh(), vf.mesh(),
vf.mesh().schemesDict().ddtScheme("ddt(" + vf.name() + ')') vf.mesh().schemesDict().ddtScheme("ddt(" + vf.name() + ')')
)().facDdt(vf); ).ref().facDdt(vf);
} }
@ -87,7 +87,7 @@ ddt
( (
"ddt(" + rho.name() + ',' + vf.name() + ')' "ddt(" + rho.name() + ',' + vf.name() + ')'
) )
)().facDdt(rho, vf); ).ref().facDdt(rho, vf);
} }
@ -106,7 +106,7 @@ ddt
( (
"ddt(" + rho.name() + ',' + vf.name() + ')' "ddt(" + rho.name() + ',' + vf.name() + ')'
) )
)().facDdt(rho, vf); ).ref().facDdt(rho, vf);
} }

View File

@ -108,14 +108,14 @@ div
fa::divScheme<Type>::New fa::divScheme<Type>::New
( (
vf.mesh(), vf.mesh().schemesDict().divScheme(name) vf.mesh(), vf.mesh().schemesDict().divScheme(name)
)().facDiv(vf) ).ref().facDiv(vf)
); );
GeometricField GeometricField
< <
typename innerProduct<vector, Type>::type, typename innerProduct<vector, Type>::type,
faPatchField, faPatchField,
areaMesh areaMesh
>& Div = tDiv(); >& Div = tDiv.ref();
Div.primitiveFieldRef() = Div.primitiveFieldRef() =
transform(tensor::I - sqr(n), Div.internalField()); transform(tensor::I - sqr(n), Div.internalField());
@ -208,9 +208,9 @@ div
vf.mesh(), vf.mesh(),
flux, flux,
vf.mesh().schemesDict().divScheme(name) vf.mesh().schemesDict().divScheme(name)
)().facDiv(flux, vf) ).ref().facDiv(flux, vf)
); );
GeometricField<Type, faPatchField, areaMesh>& Div = tDiv(); GeometricField<Type, faPatchField, areaMesh>& Div = tDiv.ref();
Div.internalField() = transform(tensor::I - sqr(n), Div.internalField()); Div.internalField() = transform(tensor::I - sqr(n), Div.internalField());
Div.correctBoundaryConditions(); Div.correctBoundaryConditions();

View File

@ -63,7 +63,7 @@ grad
tmp<GeometricField<GradType, faPatchField, areaMesh>> tgGrad = tmp<GeometricField<GradType, faPatchField, areaMesh>> tgGrad =
fac::edgeIntegrate(ssf.mesh().Sf()*ssf); fac::edgeIntegrate(ssf.mesh().Sf()*ssf);
GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad(); GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad.ref();
gGrad -= n*(n & gGrad); gGrad -= n*(n & gGrad);
gGrad.correctBoundaryConditions(); gGrad.correctBoundaryConditions();
@ -116,7 +116,7 @@ grad
( (
vf.mesh(), vf.mesh(),
vf.mesh().schemesDict().gradScheme(name) vf.mesh().schemesDict().gradScheme(name)
)().grad(vf); ).ref().grad(vf);
GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad.ref(); GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad.ref();

View File

@ -53,7 +53,7 @@ lnGrad
( (
vf.mesh(), vf.mesh(),
vf.mesh().schemesDict().lnGradScheme(name) vf.mesh().schemesDict().lnGradScheme(name)
)().lnGrad(vf); ).ref().lnGrad(vf);
} }

View File

@ -53,9 +53,11 @@ ndiv
{ {
const areaVectorField& n = ssf.mesh().faceAreaNormals(); const areaVectorField& n = ssf.mesh().faceAreaNormals();
tmp<GeometricField<Type, faPatchField, areaMesh>> v = tmp<GeometricField<Type, faPatchField, areaMesh>> tv =
fac::edgeIntegrate(ssf); fac::edgeIntegrate(ssf);
GeometricField<Type, faPatchField, areaMesh>& v = tv.ref();
v.internalField() = n*(n & v.internalField()); v.internalField() = n*(n & v.internalField());
v.correctBoundaryConditions(); v.correctBoundaryConditions();
@ -97,9 +99,9 @@ ndiv
fa::divScheme<Type>::New fa::divScheme<Type>::New
( (
vf.mesh(), vf.mesh().schemesDict().divScheme(name) vf.mesh(), vf.mesh().schemesDict().divScheme(name)
)().facDiv(vf) ).ref().facDiv(vf)
); );
GeometricField<Type, faPatchField, areaMesh>& Div = tDiv(); GeometricField<Type, faPatchField, areaMesh>& Div = tDiv.ref();
Div.internalField() = n*(n & Div.internalField()); Div.internalField() = n*(n & Div.internalField());
Div.correctBoundaryConditions(); Div.correctBoundaryConditions();
@ -191,10 +193,10 @@ ndiv
vf.mesh(), vf.mesh(),
flux, flux,
vf.mesh().schemesDict().divScheme(name) vf.mesh().schemesDict().divScheme(name)
)().facDiv(flux, vf) ).ref().facDiv(flux, vf)
); );
GeometricField<Type, faPatchField, areaMesh>& Div = tDiv(); GeometricField<Type, faPatchField, areaMesh>& Div = tDiv.ref();
Div.internalField() = n*(n &Div.internalField()); Div.internalField() = n*(n &Div.internalField());
Div.correctBoundaryConditions(); Div.correctBoundaryConditions();

View File

@ -64,7 +64,7 @@ ngrad
tmp<GeometricField<GradType, faPatchField, areaMesh>> tgGrad = tmp<GeometricField<GradType, faPatchField, areaMesh>> tgGrad =
fac::edgeIntegrate(ssf.mesh().Sf()*ssf); fac::edgeIntegrate(ssf.mesh().Sf()*ssf);
GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad(); GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad.ref();
gGrad = n*(n & gGrad); gGrad = n*(n & gGrad);
gGrad.correctBoundaryConditions(); gGrad.correctBoundaryConditions();
@ -119,9 +119,9 @@ ngrad
( (
vf.mesh(), vf.mesh(),
vf.mesh().schemesDict().gradScheme(name) vf.mesh().schemesDict().gradScheme(name)
)().grad(vf); ).ref().grad(vf);
GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad(); GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad.ref();
gGrad = n*(n & gGrad); gGrad = n*(n & gGrad);
gGrad.correctBoundaryConditions(); gGrad.correctBoundaryConditions();

View File

@ -56,9 +56,10 @@ ndiv
vf.mesh(), vf.mesh(),
flux, flux,
vf.mesh().schemesDict().divScheme(name) vf.mesh().schemesDict().divScheme(name)
)().famDiv(flux, vf);//TODO calculate normal ).ref().famDiv(flux, vf);//TODO calculate normal
} }
template<class Type> template<class Type>
tmp<faMatrix<Type>> tmp<faMatrix<Type>>
ndiv ndiv
@ -86,6 +87,7 @@ ndiv
return fam::ndiv(flux, vf, "div("+flux.name()+','+vf.name()+')'); return fam::ndiv(flux, vf, "div("+flux.name()+','+vf.name()+')');
} }
template<class Type> template<class Type>
tmp<faMatrix<Type>> tmp<faMatrix<Type>>
ndiv ndiv

View File

@ -56,7 +56,7 @@ div
vf.mesh(), vf.mesh(),
flux, flux,
vf.mesh().schemesDict().divScheme(name) vf.mesh().schemesDict().divScheme(name)
)().famDiv(flux, vf); ).ref().famDiv(flux, vf);
} }

View File

@ -46,7 +46,7 @@ Foam::tmp<Foam::Field<Type>> Foam::volSurfaceMapping::mapToSurface
pTraits<Type>::zero pTraits<Type>::zero
) )
); );
Field<Type>& result = tresult(); Field<Type>& result = tresult.ref();
// Get reference to volume mesh // Get reference to volume mesh
const polyMesh& pMesh = mesh_(); const polyMesh& pMesh = mesh_();