# time derivative of laplacian

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

 August 2, 2020, 04:46 time derivative of laplacian #1 New Member   Max Join Date: Jan 2017 Posts: 9 Rep Power: 8 I have a function I can't implement: a -- is a constant in [m2/s], which I defined via external dictionary (lookup) c -- is a constant in [s], which I defined via external dictionary (lookup) T -- is temperature in [K] Laplacian of T should yield [K/m2] and should yield [K], which is a scalar field. I can't understand why I can't get a time derivative from it. I've tried fvm::ddt(c * fvm::laplacian(a,T)), but got an error: no matching function for call to ‘Foam::GeometricField::GeometricField(Foam::tmp >)’

August 2, 2020, 16:06
#2
Senior Member

Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 14
Quote:
 Originally Posted by nikitin-pro I have a function I can't implement: a -- is a constant in [m2/s], which I defined via external dictionary (lookup) c -- is a constant in [s], which I defined via external dictionary (lookup) T -- is temperature in [K] Laplacian of T should yield [K/m2] and should yield [K], which is a scalar field. I can't understand why I can't get a time derivative from it. I've tried fvm::ddt(c * fvm::laplacian(a,T)), but got an error: no matching function for call to ‘Foam::GeometricField::GeometricField(Foam::tmp >)’
Assuming that your interpretation of the term you show is correct, which i think is not, you're trying to project in time a linear system of equations (laplacian). In other words, a linear system of a linear system... What you want is:

fvm::ddt(fvc::laplacian(...

Coming to your interpretation problem, you are mixing mathematical notations. The leibniz notation (d/dt) with the vector (nabla, delta) notation for derivatives. Im betting the Delta T in the term above means "temperature difference", not "second order derivative of..."'

 August 2, 2020, 16:22 #3 New Member   Max Join Date: Jan 2017 Posts: 9 Rep Power: 8 Interesting thing:compiles OK: volScalarField lap(c * fvc::laplacian(a,T)); fvScalarMatrix TEqn (fvm::ddt(T) - fvm::ddt(lap) - fvm::laplacian(a,T) == 0); but solution fails with the following error: incompatible fields for operation [T] - [(c*laplacian(a,T))] compilation error (no matching function for call to ‘ddt(Foam::tmp >)’): fvScalarMatrix TEqn (fvm::ddt(T) - fvm::ddt(c * fvc::laplacian(a,T))) - fvm::laplacian(a,T) == 0); ----------------------------------- As for notation: This is a part of modified Fourier equation: where a -- thermal diffusivity [m2/s] if one set c=0 s, then will get simple heat equation

 August 3, 2020, 15:21 #4 Senior Member   Michael Alletto Join Date: Jun 2018 Location: Bremen Posts: 611 Rep Power: 14 did you try: fvc::ddt(c * fvc::laplacian(a,T))) I think there is no implicit operator implement in openfaom for what you want to do

 August 3, 2020, 15:35 #5 New Member   Max Join Date: Jan 2017 Posts: 9 Rep Power: 8 I did.. same error. a somewhat solution is that c * fvc::laplacian(a,fvc::ddt(T)) or c * fvc::ddt(volScalarField("lap",fvc::laplacian(a,T)) ) Both compile ok and simulation runs well, but this term doesn't affect solution at all. Seems like Last edited by nikitin-pro; August 3, 2020 at 17:07.

 Tags laplacian operator, openfoam, time derivative