- 积分
- 0
- 注册时间
- 2016-7-20
- 仿真币
-
- 最后登录
- 1970-1-1
|
10.15.4 Decreasing the amount of data in an output database by retaining data at specific frames
This example illustrates how you can decrease the size of an output database. In most cases a large output database results from excessive field output being generated over a large number of frames. The Abaqus C++ API does not support the deletion of data from an output database; however, you can use this example program to copy data from select frames into a second output database created by a datacheck analysis that has identical model data. The original analysis and the datacheck analysis must be run using the same number of processors because the internal organization of data may differ based on the number of processors. The program uses addData to copy data at specified frames from the large output database into the new output database. The addData method works only when the model data in the two output databases are identical. For more information, see “addData,”Section 57.7.6 of the Abaqus Scripting Reference Manual. When you run the program, the following command line parameters are required: -smallOdb odbName
-largeOdb odbName The name of the large output database generated by the original problem. The program copies selected frames from this output database.
The following parameters are optional:-history Copy all history output from all available steps in the large output database. By default, history output is not copied. Warning: Copying large amounts of history data can result in the program creating a very large output database.
-debug Print a detailed report of all the operations performed during the running of the program. By default, no debug information is generated. Warning: If you are extracting data from a large output database, the debug option can generate large amounts of information.
You can also run the example with only the -help parameter for a summary of the usage.
abaqus fetch job=odbFilter.Cabaqus fetch job=ringshell.inp
Run an analysis using the benchmark input file: abaqus job=ringshellThis creates an output database called ringshell.odb that contains 100 frames of data.
Run a datacheck analysis to obtain a new output database called ringshell_datacheck.odb that contains the same model data as ringshell.odb: abaqus job=ringshell_datacheck -input ringshell datacheck
Create the executable program: abaqus make job=odbFilter.C
The program displays the number of frames available in each step. For each step you must specify the number of increments between frames, which is the frequency at which the data will be copied to the new output database. Data for the first and last increment in each step are always copied. For example, if a step has 100 frames, and you enter a frame interval of37, the program will copy data for frames 0, 37, 74, and 100. The following statement will run the executable program and read data from the small output database containing only model data and the large output database created by the benchmark example: abaqus odbFilter -smallOdb ringshell_datacheck -largeOdb ringshell The program prompts you for the increment between frames:Results from ODB : ringshell.odb will be filtered & written to ODB: ringshell_datacheckBy default only the first & last increment of a step will be savedFor each step enter the increment between framesfor example : 3 => frames 0,3,6,..,lastframe will be savedSTEP Step-1 has 101 FramesEnter Increment between framesEnter 37 to define the increment between frames. The program then reads the data and displays the frames being processedrocessing frame # : 0Processing frame # : 37Processing frame # : 74Processing frame # : 100Filtering successfully completed
|
|