- the timeSelector is often used to select single or multiple times (eg, for post-processing). However, there are a few applications where only a *single* time should be selected and set. These are now covered by this type of use: timeSelector::addOptions_singleTime(); // Single-time options ... // Allow override of time from specified time options, or no-op timeSelector::setTimeIfPresent(runTime, args); In some cases, if can be desirable to force starting from the initial Time=0 when no time options have been specified: // Set time from specified time options, or force start from Time=0 timeSelector::setTimeIfPresent(runTime, args, true); These changes make a number of includes redundant: * addTimeOptions.H * checkConstantOption.H * checkTimeOption.H * checkTimeOptions.H * checkTimeOptionsNoConstant.H ENH: add time handling to setFields, setAlphaField (#3143) Co-authored-by: Johan Roenby <> STYLE: replace instant("constant") with instant(0, "constant") - avoids relying on atof parse behaviour returning zero |
||
---|---|---|
.. | ||
code | ||
files | ||
steady | ||
Allclean | ||
Allrun | ||
Allrun.move | ||
README.md |
Setting up the FSI linear controllers can be easy or difficult, depending on the complexity of the structure and the source of the input data.
If you already have an FEA model with nodes and beam elements, it will be fairly straightforward to instrument your structure. If you just have the control points but need to define the connectivity yourself, it will obviously be more work.
In this case it can help to import your raw points as a csv table in paraview and use the TableToPoints filter to visualize their locations and overlay this with the surface geometry. With this you can piece together the connectivity, which specifies the motion controllors.
To debug the setup, within steady/
Copy the geometry
./Allrun.init
Verify connectivity
lumpedPointZones -dry-run
This will generate a state.vtp
file with the lumped points, connected
as per the controller description.
Next generate the mesh (eg, with snappyHexMesh). For example,
./Allrun.pre
Test the mapping
lumpedPointZones # serial or parallel
paraview lumpedPointZones.vtp
Inspect the nearest/next nearest and weighting. Adjust the controllers definitions if required.
For setup, it is often helpful if you have some predefined structural response data that can be used for testing.
Check the quality of response data by visualizing how it affects the movement of the points:
lumpedPointMovement {options} -dry-run response.txt
paraview state.vtk.series
You can add visualization options such as -scale
or
-visual-length
. If the there are many time points in the response
data, use -span
to skip over some of them.
The lumpedPointMovement
command can be used as above, but without
the -dry-run
option. This will extract the patch surface associated
with the controllers and generate corresponding surface files in VTK
format.
lumpedPointMovement {options} response.txt
paraview geom.vtp.series
Using a larger scale factor (eg, -scale 10
) can help highlight
potential interpolation problems.
Additional Notes
The files/polynomials.dict
represent a vague approximation of
measurement data, but are only intended as a compacter means of
representing the movement. They can be used with the accompanying
code/polynomial-motion.C
to act as a response slave, or to
pre-generate a response file. For example,
code/polynomial-motion -output response.txt -deltaT 0.001 -nTimes 5001 files/polynomials.dict
To query the values at an individual time:
code/polynomial-motion -query -time 0.5 files/polynomials.dict