CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > Siemens > STAR-CCM+

Field Function syntax for density change by time

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 26, 2021, 13:56
Default Field Function syntax for density change by time
  #1
New Member
 
Marcel
Join Date: Dec 2020
Location: Germany
Posts: 17
Rep Power: 5
Marcel95 is on a distinguished road
Hello all,

i can not find the right syntax in StarCCM+ documentation for derivation after time.

I want to create a field function which gives me the density chance by time:

mathematically: d(density)/d(time)

(The "grad" syntax provides me a gradient of a scalar, that is not what i want, because the derivation in the gradient function is after x,y,z)

Thanks for your help
Marcel95 is offline   Reply With Quote

Old   May 27, 2021, 03:20
Default
  #2
Senior Member
 
ashokac7's Avatar
 
Ashok Chaudhari
Join Date: Aug 2016
Location: Pune, India
Posts: 260
Rep Power: 10
ashokac7 is on a distinguished road
Send a message via Skype™ to ashokac7
I think you have to create a monitor and plot from the report. Report density and then plot it for solution progress. So the slope of this curve will be d(rho)/dt
ashokac7 is offline   Reply With Quote

Old   May 27, 2021, 03:29
Default
  #3
New Member
 
Marcel
Join Date: Dec 2020
Location: Germany
Posts: 17
Rep Power: 5
Marcel95 is on a distinguished road
Thank you for your reply.

With your solution i only can get the derivation of density by time at one specific point or at one average plane, but i would like to see d(rho)/dt in my whole model with a scalar scene. Like the velocity for example.

Is there no syntax for d/dt for field functions? That would be the easiest way to solve the problem
Marcel95 is offline   Reply With Quote

Old   May 27, 2021, 10:07
Default
  #4
New Member
 
Marcel
Join Date: Dec 2020
Location: Germany
Posts: 17
Rep Power: 5
Marcel95 is on a distinguished road
I have now tryed the following approach:

- I created a monitor called "DensityNow" (Time-Step-Frequency = 1 and
Sliding Window =1)
That monitor should determine the Density in the current time step.

- I created a monitor called "DensityPrev" (Time-Step-Frequency = 1 and
Sliding Window =2)
That monitor should determine the Density in the time step before the current time step.

- I created a monitor called "TimeNow" (Time-Step-Frequency = 1 and
Sliding Window =1)
That monitor should determine the physical time in the current time step.

- I created a monitor called "TimePrev" (Time-Step-Frequency = 1 and
Sliding Window =2)
That monitor should determine the physical time in the time step before the current timestep.


After that i created a field function called "DensityDeriv" which should calculate delta(density)/delta(time) because this is the best approximation for derivation i guess.

Field function syntax: (DensityNow - DensityPrev) / (TimeNow - TimePrev)

I havent worked yet with monitors, sliding windows and unsteady simulations in general, so i think there is a failure in my concept, because it doesnt work like i want

I thought if i go to scalar scene now and choose my field function "DensityDeriv" i will see the derivation of the density (after the simulation did at least the second time step). But nothing happens at all in the scalar scene.

Can someone give me feedback or does someone see a mistake in my concept?

Thanks !
Marcel95 is offline   Reply With Quote

Old   May 27, 2021, 15:02
Default
  #5
Senior Member
 
Joern Beilke
Join Date: Mar 2009
Location: Dresden
Posts: 501
Rep Power: 20
JBeilke is on a distinguished road
DensityNow = $Density
(TimeNow - TimePrev) = $TimeStep


Just try this Java-Macro: setDensityDerivate.java:


Code:
package macro;

import star.common.*;
import star.base.report.*;

public class setDensityDerivate extends StarMacro {

  public void execute() {
    execute0();
  }

  private void execute0() {

    Simulation sim_ = getActiveSimulation();

    String nameFMM_Density          = "densOld";
    String nameFF_DensityDerivate   = "DensityDerivate";

    
    // Density from previous time step

    FieldMeanMonitor fMM_Density;

    if (sim_.getMonitorManager().has(nameFMM_Density))
    {
        fMM_Density = (FieldMeanMonitor) sim_.getMonitorManager().getMonitor(nameFMM_Density);
    }
    else
    {
        fMM_Density = sim_.getMonitorManager().createMonitor(FieldMeanMonitor.class);
        fMM_Density.setPresentationName(nameFMM_Density);
    }

    fMM_Density.getParts().setObjects(sim_.getRegionManager().getRegions());
    fMM_Density.setFieldFunction(sim_.getFieldFunctionManager().getFunction("Density"));
    fMM_Density.setSlidingWindow(true);
    fMM_Density.getSlidingWindowOption().setValue(2);


    //  DensityDerivateFieldFunction

    UserFieldFunction userFF;
    if (sim_.getFieldFunctionManager().has(nameFF_DensityDerivate))
    {
        userFF = (UserFieldFunction) sim_.getFieldFunctionManager().getFunction(nameFF_DensityDerivate);
    }
    else
    {
        userFF = sim_.getFieldFunctionManager().createFieldFunction();
        userFF.setFunctionName("densityDerivate");
        userFF.setPresentationName(nameFF_DensityDerivate);
        
    }
    
    userFF.getTypeOption().setSelected(FieldFunctionTypeOption.Type.SCALAR);
    userFF.setDefinition("($Density - $" + nameFMM_Density + "Monitor ) / $TimeStep");
  }
}

I'm not sure if it gives the correct result. In previous versions a sliding window size of 1 worked. But it looks like the Monitor gets updated before the plotting, instead at the begin of the next time step.
JBeilke is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
courant number increases to rather large values 6863523 OpenFOAM Running, Solving & CFD 22 July 5, 2023 23:48
[swak4Foam] swakExpression not writing to log alexfells OpenFOAM Community Contributions 3 March 16, 2020 18:19
pimpleDyMFoam computation randomly stops babapeti OpenFOAM Running, Solving & CFD 5 January 24, 2018 05:28
[mesh manipulation] Importing Multiple Meshes thomasnwalshiii OpenFOAM Meshing & Mesh Conversion 18 December 19, 2015 18:57
Could anybody help me see this error and give help liugx212 OpenFOAM Running, Solving & CFD 3 January 4, 2006 18:07


All times are GMT -4. The time now is 18:45.