Point clouds (from external tools or
MESHFREE) in
EnSight format can be read and stored within a
STANDBY point cloud.
Warning: It is important, that the relevant quantities are stored as
scalar per node or
vector per node - not as
scalar per element or
vector per element.
Syntax
In order to read an
EnSight file to a
STANDBY point cloud, the following syntax can be used.
begin_pointcloud{}
include{/path/to/file/point_cloud.case} format{ensight} ...
# EnSight format
timeFrame{20} ...
# timeframe 20
variables{ %ind_p%="pressure", %ind_v(1)%="velocity", %ind_h%="H" } ...
# variable mapping
toChamber{11} ...
# target chamber
toMaterial{
$MatStandby$}
# target material
end_pointcloud
KOP(11) =
STANDBY
INITDATA(
$MatStandby$,
%ind_h% ) = 0.1
In this case, the 20th state of the
EnSight file with filename '/path/to/file/point_cloud.case' is read and the point cloud is written to
STANDBY chamber 11 with material tag $MatStandby$.
Options
Keyword | Meaning |
---|
include{filename} | Filename of EnSight file to be read. |
format{ensight} | Specification of the format to be read in. If not given, it is guessed from the file extension (.case). |
timeFrame{n} | For stationary point clouds: index of the time frame to be read. If the .case-file does not contain a TIME-section, this item can be omitted. If not given, the first time frame is used. |
variables{ ... } | Variable mapping between MESHFREE __Indices__ and EnSight variables, e.g. variables{ %ind_FPM_1%="variableNameInEnsight", %ind_FPM_2%="variableNameInEnsight", ... }. Can be used to select the desired quantities. |
toChamber{n} | Chamber index given to the read MESHFREE points. |
toMaterial{$Mat...$} | Material index given to the read MESHFREE points. This is especially useful when employing the INITDATA functionality to set function values. |
ReadToPCStandby | directly read Ensight data to Standby pointcloud. (experimental) |
Remarks
SmoothingLength:
-
- If the smoothing length is present in the .case-file and also read in by variables{ ..., %ind_h%="whateverTheName", ... }, then MESHFREE will be able to correctly establish a search tree for the MESHFREE points of the STANDBY point cloud.
- If the smoothing length IS NOT present in the .case-file, it can still be defined by the INITDATA functionality.
- If the smoothing length is NEITHER read from the .case-file NOR defined by the INITDATA functionality, then MESHFREE tries to estimate the smoothing length by itself during the first 5 time cycles of the simulation and writes the results into the variable %ind_h%. After the 5th time cycle, %ind_h% is not touched anymore.
- The smoothing length is particularly important for the neighbor search for function approximation/mapping with approxY(). If the smoothing length does not represent the point distribution, there might be serious inefficiencies or inaccuracies: if %ind_h% is too big, MESHFREE has to handle too many neighbor points in the approxY()-function; if it is too small, MESHFREE might not find enough neighbors for a proper function approximation.
Note: The
STANDBY point cloud is not yet saved into the
RESTART file.
(experimental) LIQUID point cloud
This feature is still under development and should be used with caution.
This feature allows to read an existing point cloud from a simulation result at the time instance
Tstart.
Please note that if the initialization of field variables such as velocity or pressure is performed in the existing setup (i.e. use of
INITDATA), it will overwrite the values of the corresponding field variables defined in the imported point cloud environment.
It is possible to read in an initial point cloud by setting the KOP accordingly, for example
To ensure correct neighborhood computations, it is necessary to provide the old
%ind_h%-values during read-in or prescribe new ones with
INITDATA.
Note: -
- For this feature to work correctly, it is required to use COMP_SortBEintoBoxes_Version=2.
- Only MESHFREE intrinsic field variables are supported
(experimental) DROPLETPHASE point cloud
This feature is still under development and should be used with caution.
MESHFREE point clouds available in
EnSight format can be used as transient point source for
DROPLETPHASE simulations. The prerequisite for this is that at least the following indices are available in the data set and read:
Syntax
In order to transiently read an
EnSight file to a
DROPLETPHASE point cloud, the following syntax similar to the one above can be used.
begin_pointcloud{}
include{Nozzle_MONITOR.case} format{ensight} ...
# EnSight format
transient{equn(
$EQ_time_map$)} ...
# transient read-in
variables{ %ind_v(1)%="velocity_MP", %ind_h%="h_MP", %ind_d30%="d30_MP", %ind_Vi%="Vi_MP", %ind_r%="density_MP" } ...
# variable mapping
toChamber{1} ...
# target chamber
toMaterial{
$Mat1$} ...
# target material
end_pointcloud
KOP(1) =
DROPLETPHASE H:MIN_FACTOR(0.1)
In this case, the
EnSight file with filename 'Nozzle_MONITOR.case' is read transiently and the point cloud is written to
DROPLETPHASE chamber 1 with material tag $Mat1$.
Options
Keyword | Meaning |
---|
include{filename} | Filename of EnSight file to be read. |
format{ensight} | Specification of the format to be read in. If not given, it is guessed from the file extension (.case). |
toChamber{n} | Chamber index given to the read MESHFREE points. |
toMaterial{$Mat...$} | Material index given to the read MESHFREE points. This is especially useful when employing the INITDATA functionality to set function values. |
transient{} | By default, the point cloud is read in 1:1 according to the corresponding simulation time. |
| If 1:1 read in wrt the simulation time is not desired, an equation relating simulation time to the data time can be specified inside the transient{} statement. |
variables{ ... } | Variable mapping between MESHFREE __Indices__ and EnSight variables, e.g. variables{ %ind_FPM_1%="variableNameInEnsight", %ind_FPM_2%="variableNameInEnsight", ... }. Can be used to select the desired quantities. |
dtAddCond{} | Optionally, include the time stepping of the point cloud into the determination of the simulation time stepping as additional condition. |
skipReadIn{} | Optionally, skip the read in of the data according to the equation specified inside the skipReadIn{} statement that relates the simulation time to the data time. |
shiftedBy{} | If necessary, this specifies the number of time steps that the original data has been shifted by (at the beginning), i.e. number of deleted frames in case of preprocessing of .case-file. |
repeatFromFrame{} | Optionally, upon reaching the final frame of the data repeated read in of data from a previous frame (in between starting and final frame) can be triggered by specifying the corresponding number in the repeatFromFrame{} statement. |
Remarks
-
- The read points are appended to the existing ones in each time step.
- Creation of additional points in such a chamber, e.g. by DropletSource, is not yet tested.
- The feature has not yet been tested for multiphase simulations.
- dtAddCond{} operates as global additional condition for the time stepping. It can be used e.g. to force the use of the time step size from the provided data.
- If dtAddCond{} is used in combination with a cycling time mapping defined in the transient{} statement, it is assumed that this cycling is of the following form: \( t_\mathrm{start} + mod(t-t_\mathrm{start},t_\mathrm{end}-t_\mathrm{start}+(t_\mathrm{end}-t_\mathrm{start})/nb_\mathrm{ts\_start\_end})\)
- The allowed fuzziness when using dtAddCond{} to compare the proposed simulation-based time step size with the time step size due to the read-in data can be controlled by supplying a factor f, i.e. dtAddCond{f} (Default: f=0.001): \( |t_\mathrm{sim} - t_\mathrm{read}| \leq f\cdot \Delta t\)
- If a decoupling from the time step size of the read in data is desired, i.e. multiple data frames should be read in a single time step, then IPC_ReadMultipleFramesDuringRuntime should be used.
- The optional keywords skipReadIn{}, shiftedBy{}, and repeatFromFrame{} can be used to model simplified pulsation.