|
[Sponsors] |
July 21, 2011, 21:03 |
Automatically export all reports in batch
|
#1 | |
Senior Member
Join Date: Apr 2009
Posts: 159
Rep Power: 17 |
Hello,
I typically run many simulations in batch mode with accompanying java macros that set up the conditions; these simulations have many reports. I'm looking for a way to export all reports after simulation convergence (in batch mode) into a csv file. I have found a java macro which exports all reports to a csv file by running it manually on a simulation, but I need to run it automatically and only after convergence. Currently, the last command in my setup macros (which I use with each simulation in batch mode) is to RUN the simulation. How do I go about running the report export macro before the simulation closes (and moves on to the next simulation) in batch mode? Thanks Attached is the report export macro I got from cd-adapco's java hut (author:Sangamesh) Quote:
Last edited by f-w; July 25, 2011 at 12:39. |
||
July 25, 2011, 20:51 |
|
#2 |
Senior Member
Join Date: Apr 2009
Posts: 159
Rep Power: 17 |
I forgot that I can play a macro from within a macro. All I had to do was add the following line to the end of my conditioning macro:
new StarScript(getActiveSimulation(),new java.io.File(resolvePath("Report_to_csv.java"))).p lay(); |
|
August 3, 2011, 10:14 |
|
#3 | ||
New Member
Sebastian
Join Date: Mar 2011
Posts: 13
Rep Power: 15 |
Not 100% sure if I understand what you are doing. Just run a macro once the simulation run finishes? I wrote a couple of macros a few months ago to do stuff after each iteration or timestep, maybe they are helpful to you.
First I toyed around with the observer pattern: Quote:
Then I used another approach by making my macro run the simulation itself timestep by timestep. You would probably have to adjust your stopping criteria since you obviously have your own ones based on convergence. I simplified it and put comments where you can do things a) after every step and b) after last step: Quote:
|
|||
August 3, 2011, 20:05 |
|
#4 |
Senior Member
Join Date: Apr 2009
Posts: 159
Rep Power: 17 |
Thanks for your contribution Sebastian, but as you can read from my 2nd post, I figured it out ...
|
|
August 4, 2011, 02:02 |
|
#5 |
New Member
Sebastian
Join Date: Mar 2011
Posts: 13
Rep Power: 15 |
Oh alright, that came across like some kind of extra information. Guess I shouldn't try to answer threads in a hurry shortly before calling it a day
|
|
August 23, 2016, 08:04 |
|
#6 |
New Member
Sergi
Join Date: Jun 2016
Location: UK
Posts: 4
Rep Power: 0 |
This thread that it already has some time it's quite useful to export the reports into an excel spreadsheet in batch mode. The code in the 1st post worked brilliantly to me to export all the reports from my simulations.
But here's my question and hopefully someone can help me to find an answer because my Java knowledge is 0 and I do not know how to find or write myself the right code to export the Plots monitor into an excel file. The thing is that I have a series of simulations and I would like to generate an excel file with the plots results for each simulation in batch mode. Hope that I made myself clear, so if you need some extra info, please let me know it. Any help or guidance on this, I would really appreciate it! |
|
September 24, 2019, 10:21 |
Export single reports, java api issues
|
#7 |
New Member
Join Date: May 2018
Posts: 2
Rep Power: 0 |
Hello !
I am sorry I have to revive this thread again, but in case someone is looking for a way to extract single Reports by specifying the Report Name, this might help you: Code:
// STAR-CCM+ macro: reportExtractor.java package macro; // import java.util.*; import java.io.*; import java.nio.*; import star.common.*; import star.base.neo.*; import star.base.report.*; import star.flow.*; public class reportExtractor extends StarMacro { // BufferedWriter writer = null; // public void execute() { // try { Simulation activeSimulation = getActiveSimulation(); // Collecting the simualtion file name String simulationName = activeSimulation.getPresentationName(); activeSimulation.println("Simulation Name:" + simulationName); // Creating file with name "<sim_file_name>+report.csv" writer = new BufferedWriter(new FileWriter(resolvePath(simulationName +"_report.csv"))); writer.write("Report Name, Value, Unit, \n"); Report testReport; testReport = activeSimulation.getReportManager().getReport("Heat Flux of Contact Surfaces"); List<Report> reportCollection = new ArrayList<Report>(); reportCollection.add(testReport); for (Report thisReport : reportCollection){ String fieldLocationName = thisReport.getPresentationName(); Double fieldValue = thisReport.getReportMonitorValue(); String fieldUnits = thisReport.getUnits().toString(); // Printing to check in output window activeSimulation.println("Field Location: " + fieldLocationName); activeSimulation.println("Field Value: " + fieldValue); activeSimulation.println("Field Units: " + fieldUnits); activeSimulation.println(""); // Write Output file as "sim file name"+report.csv writer.write( fieldLocationName + ", " +fieldValue + ", " + fieldUnits +"\n"); // } writer.close(); // } catch (IOException iOException) { } // } } |
|
May 24, 2022, 13:00 |
Where is the .csv File ?
|
#8 |
New Member
Marcel
Join Date: Dec 2020
Location: Germany
Posts: 17
Rep Power: 6 |
Can someone tell me where i will find the .csv file after running the macro??
I thought it would be at the same place as my simulation, but there is nothing. |
|
May 25, 2022, 06:51 |
|
#9 |
Senior Member
Sebastian Engel
Join Date: Jun 2011
Location: Germany
Posts: 567
Rep Power: 21 |
if you do not specify an absolute path, the relative path points to the current work directory.
This should be the location from which the starccm binary is started. If you are running windows, have a look into your home directory (such as C:/Users/Marcel/) The sim object has a method which tells in which directory it is located. Here is an example to export all plots to the location of the sim file Code:
Simulation simulation_0 = getActiveSimulation(); String dir = simulation_0.getSessionDir(); //get the name of the simulation's directory String sep = System.getProperty("file.separator"); //get the right separator for your operating system for (StarPlot plot : simulation_0.getPlotManager().getObjects()) { plot.encode(resolvePath(dir + sep + plot.getPresentationName() + ".jpg"), "jpg", 800, 600); } |
|
November 17, 2022, 05:14 |
|
#10 | |
Member
Marc Ricart
Join Date: Jul 2022
Posts: 65
Rep Power: 4 |
Quote:
If you are running windows, have a look into your home directory (such as C:/Users/Marcel/)" I tried and in my case it was at the folder where the .java macro was |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to write a shell for batch export? | zeitistgeld | ANSYS | 1 | October 2, 2009 09:20 |
Flow, Volume and Pressure Reports in Fluent after batch process | ravids | FLUENT | 0 | June 10, 2009 12:56 |
OpenFOAM on MinGW crosscompiler hosted on Linux | allenzhao | OpenFOAM Installation | 127 | January 30, 2009 20:08 |
How to export residuals plots data in batch mode ? | Anthony Haroutunian | CFX | 1 | March 1, 2007 17:10 |
batch process- export data | Grace | FLUENT | 0 | May 15, 2006 21:14 |