CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   Custom Scalar Transport Error Wrong Type (https://www.cfd-online.com/Forums/main/146730-custom-scalar-transport-error-wrong-type.html)

jameswilson620 January 5, 2015 14:42

Custom Scalar Transport Error Wrong Type
 
Hell all!

Id like to construct a scalar transport equation that contains the components of fvm::div(phi,someScalar) manually.

e.g. fvm::div(phi,someScalar) = someScalar*fvc::div(U) + U&fvm::grad(someScalar)

How can I be sure someScalar in the term someScalar*fvc::div(U) is treated as an unknown and not explicitly as the previous term?

I was also wondering about the units of fvm::div(phi,someScalar).

ddt[1/s](someScalar[1]) != div[1/m](phi[m^3/s] * someScalar[1])

[1/s] != [m^2/s]

What am I missing?

Here is my equation:

Code:

fvScalarMatrix someScalarEqn
(
fvm::ddt(someScalar) + someScalar*fvc::div(U) + U&fvm::grad(someScalar)
);
 
someScalarEqn.solve();

I also get the error:
"
genericAlphaEqn.H:3:53: error: no match for ‘operator+’ in ‘Foam::operator+(const Foam::tmp<Foam::fvMatrix<Type> >&, const Foam::tmp<Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> >&) [with Type = double]((*(const Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> >*)(& Foam::operator*(const Foam::GeometricField<double, PatchField, GeoMesh>&, const Foam::tmp<Foam::GeometricField<double, PatchField, GeoMesh> >&) [with PatchField = Foam::fvPatchField, GeoMesh = Foam::volMesh]((*(const Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> >*)(& Foam::fvc::div(const Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>&) [with Type = Foam::Vector<double>, typename Foam::innerProduct<Foam::Vector<double>, Type>::type = double]())))))) + U’
"

Note, that I use fvm::div(phi,someScalar) everything works fine and the scalar field is advected with the known velocity U (though it isnt pretty ;) ). This functionality would seem to imply that is the route I should choose; however, I want to solve this equation where the fvm::div(phi,someScalar) term is decomposed so that in the event of a divergent velocity field, I will be able to note the contribution of each term.

Thank you in advance, James


All times are GMT -4. The time now is 11:05.