diff --git a/README.md b/README.md index 4ed66b6..fe9f96e 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,147 @@ *Developed by Bernhard Gatzhammer and valid for FLUENT 19.5 and preCICE v2.2 on Ubuntu 20.04* *Updated and maintained done by Ishaan Desai* +The Fluent preCICE adapter operates using Fluent's User-Defined Function (UDF) feature. UDFs are +functions written in the C programming language that are dynamically loaded with the Fluent +solver and can be used to enhance and generalize its standard features. For example, UDFs can +be used to: + +* Customize boundary conditions, material property definitions, or source functions +* Customize different numerical/physics models being employed: multiphase mixture models, + discrete phase models, radiation models, chemical reaction models, diffusivity models, etc. +* Execute code at different stages of a solution: at solution initialization, at every iteration, + upon reaching convergence, etc. +* Many other things, as long as one can code it in C + +## 0. Fluent UDF Requirements + +Details about UDFs can be found in the UDF Manual provided by ANSYS Fluent. A summary of the +major requirments follows. + +### 0.1 File requirements + +UDFs are identified by a .c file extension (for example fsi_udf.c). UDFs must be defined using +DEFINE macros supplied by Fluent. These macros are pre-defined functions that access the Fluent +solver and perform other tasks. The .c file containing the UDFs (fsi_udf.c) must contain +an include statement for a udf header file (#include "udf.h"). The udf header file is provided +with the Fluent application and will be found upon UDF execution. It contains the DEFINE macros, +among other things. + +Beyond this, the use of UDFs can be very general. For example, this preCICE adapter uses a very +simple UDF file (fsi_udf.c) to handle fluid structure interaction coupling. The file contains only +4 DEFINE macros, each containing a single function that is sourced from the fsi header file +(fsi.h) and are written in fsi.c. + +### 0.2 Build requirements + +The user-written source code for the UDFs can either be compiled or interpreted in ANSYS Fluent +through the Fluent GUI. We are using external functions from the preCICE source code, so we have +to compile our UDFs. There appears to be no way to inform Fluent of the existance of external +libraries when compiling through the GUI. We need some preCICE functions in our UDFs, so we are +going to have to compile these UDFs outside of the Fluent GUI. When one uses the GUI to compile +Fluent UDFs, though, it dynamically writes files based on user inputs: a Makefile, a "user.udf" +text file, and a udf_names.c file. Fluent also requires a certain directory structure wherein + specific files must be placed. If this directory structure isn't strictly followed the UDFs + (even if compiled correctly) will not be loaded into the simulation at run time. + +### 0.3 Directory Structure + +The end result of compiling the UDF(s) for use in a Fluent simulation is a UDF shared library +called "libudf.so". This library and the compiled code and source code used to build it must +exist in a specific direcotry structure. The same direcotry that contains +the *.cas file should contain a directory in it called "libudf". Within this directory, a +sub-directory called "lnamd64" must exist. The name "lnamd64" actually depends on your system +architecture, but because we are building this on a Linux system, we'll stick with "lnamd64". + If the Fluent run is to be executed in serial, the compiled library (libudf.so) should exist + within a sub-directory of "lnamd64". The name of the sub-directory is dependent on whether + the simulation is 2D or 3D and whether it is run in single precision or double precision. + The following list contains the names for the different simulations that can be run: + +- 2d: Two dimensional, single precision simulation +- 3d: Three dimensional, single precision simulation +- 2ddp: Two dimensional, double precision simulation +- 3ddp: Three dimensional, double precision simulation + +If the simulation is to be run in parallel, two sub-directories of "lnamd64" need to exist, one +with a "_host" suffix, and one with a "_node" suffix. A copy of the library libudf.so needs to +exist in each sub-directory + +To summarize, the following directory structure needs to exist for a 2D, single precision +FSI simulation run in serial: + +fluent.cas +libudf +--lnamd64 +----2d +------fsi_udf.c: user-written UDF file containing Fleunt's DEFINE Macros +------fsi.c: user-written UDF file containing custom C-funtions that employ preCICE code +------fsi.h: user-written header file for fsi.c +------user.udf: text file used to define file names to be compiled (fsi_udf.c, fsi.c, and fsi.h); sourced by makefile to user-written header file for fsi.c; user may have to edit this file +------udf_names.c: auto-generated source code file produced by Fluent GUI; DO NOT EDIT THIS FILE +------makefile: instructions to create proper compile commands; may have to be edited by user to include proper directories +------fsi_udf.o: compiled object file from fsi_udf.c +------fsi.o: compiled object file from fsi.c +------udf_names.o: compiled object file from udf_names.c +------libudf.so: shared library file that Fluent uses + +And the following directory structure needs to exist for a 2D, double precision simulation +run in parallel: + + +fluent.cas +libudf +--lnamd64 +----2ddp_host +------fsi_udf.c +------fsi.c +------fsi.h +------user.udf +------udf_names.c +------makefile +------fsi_udf.o +------fsi.o +------udf_names.o +------libudf.so +----2ddp_node +------fsi_udf.c +------fsi.c +------fsi.h +------user.udf +------udf_names.c +------makefile +------fsi_udf.o +------fsi.o +------udf_names.o +------libudf.so + +Please note that the "_node" directory and "_host" directory are copies of one another. Also, the +makefile, source files, and intermediary object files (*.o) are not necessarily required to +be in this directory structure. They are kept here just for convenience. The libudf.so file is +the only thing required to be read by Fluent. + ## 1. How to build the Fluent-preCICE adapter: - * Adapt `lnamd64/2ddp_host/user.udf` line 1 "CSOURCES=...": There are several main udf files - * The variable SOURCES needs one main udf file and the correspoding .c files: - + fsi_udf.c: This is the main ANSYS readable file used by Fluent to call functions during each iteration - for FSI simulations. This ANSYS UDF file needs fsi.c and fsi.h for execution - * Adapt `lnamd64/2d_host/user.udf` line 3 `FLUENT_INC = ...` to the fluent installation - folder which will be of the type `./ansys_inc/v195/fluent` - * Repeat the above steps for `lnamd64/2d_node` folder in the exact same manner - * Adapt the path of the python library in `src/makefile` line 19. - **NOTE**: Python shared library is available within the ANSYS installation. Example path is: `/ansys_inc/v195/commonfiles/CPython/2_7_15/linx64/Release/python/lib/libpython2.7.so` - * Update the ANSYS Release version in `src/makefile` line 26 - Example of line 26: `RELEASE=19.5.0` - * Type: `make "FLUENT_ARCH=lnamd64"` to start the build - * Use `make clean` to clean build process + +Given the above 2D, double precicions, parallel run directory structure: + + * Adapt `lnamd64/2ddp_host/user.udf` + + change "CSOURCES=..." to include a space-separated list of *.c source files to be compiled; + for the FSI case we're building this should be fsi_udf.c and fsi.c + + change "HSOURCES=..." to include a space-separated list of *.h source heeader files to be + compiled; for the FSI case we're building this should be fsi.h + + change "FLUENT_INC= " to point to the Fluent install directory. One location may be + `/opt/Software/ansys/v202/fluent`. Locations should be of the type `./ansys_inc/v195/fluent` + * Adapt `lnamd64/2ddp_host/makefile` + + change `USER_OBJECTS` variable (line 20) to be a space separated list of the absolute + path to libprecice.so and the python library shipped with Fluent + + the libprecice.so file can be found in the preCICE install location; for example, + `install/precice/2.3.0/lib64/libprecice.so` + + the python library can be found in the Fluent installation files; for example, + `/opt/Software/ansys/v202/commonfiles/CPython/3_7/linx64/Release/python/lib/libpython3.so` + + change `RELEASE` variable to be the ANSYS release version; for example, + `RELEASE=20.2.0` + * build libudf.so: type 'make "FLUENT_ARCH=lnamd64"' + * clean the build using "make clean" + * copy ALL of the contents of `lnamd64/2ddp_host/` to `lnamd64/2ddp_node/` ## 2. Running FLUENT @@ -23,9 +150,16 @@ **General remarks** -* Ubuntu 20.04 is not officially supported by ANSYS and hence only the FLUENT package works on this distribution. All other packages (ANSYS Workbench, etc.) do not work and hence the case setup needs to be done on a different compatible operating system. Current compatible distributions for ANSYS version 2019 R3 are: Ubuntu 16.04, CentOS 7.x, Linux Mint 18.x, Debian 9 (tested with 2019 R3, unknown for 2020 R2) -* Generally it is recommended to only install the required packages, since the installation process might break (tested with 2019 R3) -* Make sure to test your installation by starting fluent (see below). If fluent crashes, see the troubleshooting hints. +* Ubuntu 20.04 is not officially supported by ANSYS and hence only the FLUENT + package works on this distribution. All other packages (ANSYS Workbench, etc.) + do not work and hence the case setup needs to be done on a different + compatible operating system. Current compatible distributions for ANSYS + version 2019 R3 are: Ubuntu 16.04, CentOS 7.x, Linux Mint 18.x, Debian 9 + (tested with 2019 R3, unknown for 2020 R2) +* Generally it is recommended to only install the required packages, since the + installation process might break (tested with 2019 R3) +* Make sure to test your installation by starting fluent (see below). If fluent + crashes, see the troubleshooting hints. **ANSYS version 2020 R2 on Ubuntu 20.04** @@ -39,24 +173,71 @@ **ANSYS Version 2019 R3 on Ubuntu 16.04** -* All packages of ANSYS Version 2019 R3 work on Ubuntu 16.04 and this [forum post](https://www.cfd-online.com/Forums/ansys/199190-ansys-18-2-ubuntu-16-04-installation-guide.html) describes the installation process. +* All packages of ANSYS Version 2019 R3 work on Ubuntu 16.04 and this + [forum post](https://www.cfd-online.com/Forums/ansys/199190-ansys-18-2-ubuntu-16-04-installation-guide.html) + describes the installation process. **Troubleshooting** -* If you try to start fluent via `fluent 2ddp` and the program exits with the error `Bad substitution`, the following [forum post}(https://www.cfd-online.com/Forums/fluent/149668-fluent-16-0-0-ubuntu-12-04-a.html) provides a solution. Short: `sudo dpkg-reconfigure dash`, answer **No** to the questions "Use dash as the default system shell (/bin/sh)?". -* If the error: `undefined symbol: FT_Done_MM_Var` is encountered on starting FLUENT, the following [forum post](https://www.cfd-online.com/Forums/fluent/227651-fluent-ubuntu-20-04-a.html) has the solution +* If you try to start fluent via `fluent 2ddp` and the program exits with the + error `Bad substitution`, the following + [forum post}(https://www.cfd-online.com/Forums/fluent/149668-fluent-16-0-0-ubuntu-12-04-a.html) provides a solution. Short: `sudo dpkg-reconfigure dash`, answer **No** to the questions "Use dash as the default system shell (/bin/sh)?". +* If the error: `undefined symbol: FT_Done_MM_Var` is encountered on starting + FLUENT, the following + [forum post](https://www.cfd-online.com/Forums/fluent/227651-fluent-ubuntu-20-04-a.html) + has the solution ### 2.2 How to start Fluent +In accordance with the [preCICE documentation](https://precice.org/installation-source-dependencies.html) +preCICE, PETSc (if used), and all solvers should run the same MPI implementation and version. So, we need +to make sure that the version of preCICE we are running and Fluent use the same MPI. Unfortunately, we +don't really know what implementation (Intel, OpenMPI, etc.) or version of MPI Fluent uses. However, +FLUENT can be made to run with any version and implementation of an MPI, within reason. Fluent does this +using environment variables. To run with a version of OpenMPI set the environment variable `OPENMPI_ROOT`, +and to run with a version of IntelMPI set the environment variable `INTELMPI_ROOT`. Upon execution, Fluent +will append `/bin/mpirun` to this environment variable, so we should set whichever one we use to the +corresponding path. For example, setting: + +``` +export OPENMPI_ROOT=/opt/Software/openmpi/3.1.4/mpirun +``` +or +``` +export INTELMPI_ROOT=/opt/Software/intel_parallel_studio/2018u4/impi/2018.4.274/intel64 +``` + +will force Fleunt to use a system MPI rather than the MPI it's packaged with. A note to the effect +will be reflected in Fluent's output when the simulation is run. + +**NOTE** +One attempt was made to run Fluent with openmpi/4.0.0, and this failed. This is presumably +because Fluent is calling some older MPI commands that are since deprecated + +**ANOTHER NOTE** +Do not attempt to define both the `OPENMPI_ROOT` and `INTELMPI_ROOT` environment variables. This +will just confuse things. + +With this environment variable in place, we can now run fluent with or without the GUI, making sure +to define the `-mpi=` argument such that it aligns with our environment variable definition. + **with GUI** -* All ANSYS packages are installed in a folder `ansys_inc/` at the location defined by the user during installation. The FLUENT executable is located at `/ansys_inc/vXXX/fluent/bin` +* All ANSYS packages are installed in a folder `ansys_inc/` at the location + defined by the user during installation. The FLUENT executable is located at + `/ansys_inc/vXXX/fluent/bin` **without GUI** * serial: `fluent 2ddp -g < steer-fluent.txt` * parallel: `fluent 2ddp -g -t4 -mpi=openmpi < steer-fluent.txt` (-t4 sets 4 processes for computations, steer-fluent.txt is a driver file for Fluent and is only written for convenience) +### 2.3 Line-by-Line Debugging UDFs in Fluent + +UDFs can be difficult to debug because they are interpreted within Fluent. Sometimes this leads +to misleading statements and tracebacks upon crashing. Some instructions on how to use gdb to +step through UDF code line-by-line are found [here](https://www.cfd-online.com/Wiki/Udf_debug) + -------------------------------------------------------------------------------- ## 3. Preparing a Fluent .cas file for UDF function usage: @@ -102,7 +283,7 @@ Go through the menus on the left and perform the following steps: Phase-2-water set the volume fraction UDF * Dynamic Mesh: + Set the structure boundary to follow the UDF - + Set the domain to be deforming/remeshing as needed + + Set the domain to be deforming/re-meshing as needed * Reference values: Only needed for writing output (since Fluent usese dimensionless values) * Solution methods: diff --git a/examples/Cavity2D/CSMdummy.py b/examples/Cavity2D/CSMdummy.py index 2ff5fe8..bb16ae0 100644 --- a/examples/Cavity2D/CSMdummy.py +++ b/examples/Cavity2D/CSMdummy.py @@ -15,7 +15,7 @@ mesh_name = "beam" -def computeDisplacements(force_vals, displ_vals): +def computeDisplacements(force_vals, displ_vals, coords_x): print("Entering computeDisplacements") # Considering beam of square cross-section with thickness of 0.01 m @@ -27,25 +27,34 @@ def computeDisplacements(force_vals, displ_vals): # Length of beam = 1 m as stated in FLUENT ll = 1 - for vertex in range(0, vertexSize*dim, 2): - displ_vals[vertex] = force_vals[vertex]*vertex*(ll-vertex)*(ll*ll + vertex*(ll-x))/(24*ME*MI*ll) + displ_vals[:, 1] = (1 / (24 * ME * MI * ll)) * \ + np.multiply(np.multiply(np.multiply(force_vals[:, 1], + coords_x), + (ll - coords_x)), + (ll * ll + coords_x * (ll - coords_x))) + + # cap the displacement at 0.002 + displ_vals = np.array([np.array([val[0], -0.002]) if val[1] < -0.002 + else np.array([val[0], 0.002]) if val[1] > 0.002 + else np.array([val[0], val[1]]) + for val in displ_vals]) + print("Updating displacement variable") + return displ_vals + solver_process_index = 0 solver_process_size = 1 interface = precice.Interface(participant_name, configuration_file_name, solver_process_index, solver_process_size) - + dim = interface.get_dimensions() mesh_id = interface.get_mesh_id(mesh_name) vertexSize = 100 -coords_x = [] -coords_y = [] -for i in range(vertexSize): - coords_x.append(i) - coords_y.append(0.0) +coords_x = np.linspace(0, 1, num=vertexSize) +coords_y = np.linspace(0, 0, num=vertexSize) coords = np.stack([coords_x, coords_y], axis=1) @@ -61,28 +70,29 @@ def computeDisplacements(force_vals, displ_vals): dt = 1.0 precice_dt = interface.initialize() - + while interface.is_coupling_ongoing(): - + if interface.is_action_required(precice.action_write_iteration_checkpoint()): print("CSMdummy: Writing iteration checkpoint") - interface.fulfilled_action(precice.action_write_iteration_checkpoint()) - + interface.mark_action_fulfilled(precice.action_write_iteration_checkpoint()) + forces = interface.read_block_vector_data(forceIDs, vertexIDs) + print("Forces read in:\n{}".format(forces)) -# computeDisplacements(forces,displacements) + displacements = computeDisplacements(forces, displacements, coords_x) + print("Computed Displacements:\n{}".format(displacements)) dt = min(precice_dt, dt) interface.write_block_vector_data(displIDs, vertexIDs, displacements) precice_dt = interface.advance(dt) - + if interface.is_action_required(precice.action_read_iteration_checkpoint()): print("CSMdummy: Reading iteration checkpoint") - interface.fulfilled_action(precice.action_read_iteration_checkpoint()) + interface.mark_action_fulfilled(precice.action_read_iteration_checkpoint()) else: print("CSMdummy: advancing in time") - -interface.finalize() +interface.finalize() diff --git a/examples/Cavity2D/Cavity2D.cas b/examples/Cavity2D/Cavity2D.cas index 578fd2e..ae48f8c 100644 --- a/examples/Cavity2D/Cavity2D.cas +++ b/examples/Cavity2D/Cavity2D.cas @@ -1,13 +1,64 @@ -(0 "fluent19.1.0 build-id: 10123") +(0 "fluent21.2.0 build-id: 10201") (0 "Machine Config:") -(4 (60 0 0 1 2 4 8 4 8 4 8 4)) +(4 (60 0 0 1 2 4 8 4 8 8 8 4)) (0 "Dimensions:") (2 2) (0 "Variables:") (37 ( +(mixing-plane/show-averaging-method? #f) +(wall/nonorth-limiter-fmax 0.7) +(wall/nonorth-limiter-fmin 0.5) +(wall/nonorth-limiter? #f) +(sc/use-tref-in-htc-calculation? #f) +(shell/io? #f) +(shell/connectivity-after-slitting? #f) +(shell/encap-only-coupled-walls? #f) +(spatial/topology ()) +(simulation/topology ()) +(dpm/spray-suite/madabhushi-smallest-diameter 5e-05) +(dpm/parallel/chunk-particle-exchanges? #t) +(pdf/calc-table-max-nodes 0) +(sound-var/residual-tolerance 1e-10) +(omega/damping-lscale-method 0) +(omega/damping-activate? #f) +(omega/damping-cons 10.) +(omega/damping-deltan 0.001) +(mp/mt//area-influence-coeff 4.) +(vof/surf-tens/css-method? #f) +(vof/smoothing-factor 1.) +(vof/smoothing-num 1) +(vof/coupled/bf-mom/blending2? #f) +(vof/coupled/bf-mom/blending1? #f) +(vof/init/smooth-relax 0.25) +(vof/init/smooth? #f) +(hyb-init/alternate-automatic-initialization? #f) +(species/use-chemkin-dcc/num-features 2) +(sedm? #f) +(mp/body-force-face-p? #f) +(pressure/coupled-velocity-delta-form? #t) +(nita/hybrid/option 0) +(nita/mom/urf-imp 1.) +(residuals/window 0) +(patch/vof? #f) +(cff-unsteady-statistics-on-solid? #t) +(nonconformal/pl/signals ((1 0 1))) +(nonconformal/pl/n-signals 1) +(nonconformal/pl/relax 0.7) +(nonconformal/pl/n-init-cycles 1) +(nonconformal/pl/method 1) +(nonconformal/pl/n-modes 10) +(kw-linearize-dissipation-newton? #f) +(nut-kappa 0.41) +(cpld/aratio-cutoff 20.) +(udf/convergence 1) +(udf/ongoing 1) +(udf/iterate 1) +(udf/checkpoint 0) +(udf/config-location "./precice-config.xml") +(solve/dt "0.001000000000000000") (rp-axi? #f) (sg-swirl? #f) (rp-seg? #t) @@ -24,15 +75,22 @@ (rp-kw? #f) (rp-kklw? #f) (rp-sas? #f) +(rp-transition-model none) (rp-trans-one-eqn? #f) (rp-trans-sst? #f) (rp-v2f? #f) (sg-rsm? #f) +(rp-structure-linear? #f) +(rp-structure-nonlinear? #f) (rp-dual-time? #f) +(rp-structure-time? #f) +(rp-structure-damping? #f) (rp-spe? #f) (rp-spe-surf? #f) +(rp-sootspecies? #f) (rp-spe-part? #f) (rp-potential? #f) +(rp-lithium? #f) (rp-electro-chem? #f) (sg-pdf-transport? #f) (sg-dqmom-iem? #f) @@ -58,6 +116,7 @@ (sg-montecarlo? #f) (sg-solar? #f) (sg-p1? #f) +(sg-twotemp? #f) (sg-pb? #f) (sg-iac? #f) (sg-disco? #f) @@ -94,9 +153,30 @@ (adapt/refine/marker/visible? #f) (adapt/refine/cell/visible? #t) (adapt/refine/cell/filled? #t) +(adapt/method 0) +(workflow/type "") +(solver/state ()) +(workflow/state ()) +(femcore/structure/stress/interpolation 0) +(femcore/structure/coordinate/interpolation 3) +(femcore/structure/displacement/interpolation 3) +(femcore/use? #f) +(point-creation-tolerance 0.0001) +(sponge/map ()) +(expr/evaluate-also-in-host? #f) +(expr/enable-caching? #t) (register-reports ()) +(inline-expressions ()) +(named-expressions ()) (cell-registers ()) -(persistent-user-rpvars ()) +(persistent-user-rpvars ((solve/dt "0.5" string #f "0.5") (udf/config-location "./precice-config.xml" string #f "./precice-config.xml") (udf/checkpoint 0 int #f 0) (udf/iterate 0 int #f 0) (udf/ongoing 1 int #f 1) (udf/convergence 1 int #f 1))) +(solid/mrf-motion-forcing-unchanged? #f) +(solid/solid-motion-forcing-unchanged? #f) +(solid/mrf-motion-forcing? #f) +(solid/mrf-motion-exist? #f) +(solid/solid-motion-forcing? #t) +(solid/motion-copy-mrf-to-solid-t? #t) +(solid/motion-recommend? #t) (reference-frame/ghost-zone-interface-active? #t) (reference-frame/relative/origin-absolute? #f) (wall-film/allow-both-models 0) @@ -104,6 +184,13 @@ (strategy/solution-strategy/modifications/status ()) (strategy/solution-strategy/original-settings/status ((executed? . #f) (converged? . #f) (start-iteration . 0))) (strategy/solution-strategy/before-init-modification/status ((executed? . #f) (converged? . #f) (start-iteration . 0))) +(rombuilder/create-rom-cell-functions? #f) +(rombuilder/post-processing-mode? #f) +(rombuilder/enabled? #f) +(rombuilder/selected-variables-unit ()) +(rombuilder/selected-variables-pick ()) +(rombuilder/selected-variables ()) +(rombuilder/variable-zone-map ()) (strategy/use-strategy? #f) (strategy/solution-strategy/modifications ((type . list-class) (min-length . 0) (max-length . #f) (curr-length . 0) (member-vars))) (strategy/solution-strategy/original-settings ((type . struct-class) (members-state (active? (value . #t) (type . boolean-class)) (name (value . "Original Settings") (type . string-class)) (command (value . "") (type . string-class)) (count (type . integer-class) (value . 1) (min . 0) (max . #f))))) @@ -122,6 +209,13 @@ (postdomain? #f) (user-wet-steam? #f) (udws/libname "") +(wetsteam/rgp-table-name "") +(wetsteam/use-rgp-tables? #f) +(wetsteam/beta-young-82 1.) +(wetsteam/alfa-young-82 9.) +(wetsteam/virial-eq-young? #f) +(wetsteam/droplet-growth-hill-66? #f) +(wetsteam/b-clip-post 1e-06) (wetsteam/b_max 0.1) (wsr/patch 0.) (wsb/patch 0.) @@ -138,9 +232,31 @@ (wetsteam/amg-alpha 0.1) (wetsteam/relax 0.1) (wetsteam/solve? #t) +(gcm/print-partitions? #f) +(gcm/ps-pitchratio-limit 2.) +(gcm/scale-mflux? #t) +(gcm/360-with-no-periodic? #t) +(gcm/disable-in-unsteady? #f) +(gcm/all-vars-contours? #f) +(gcm/contours? #f) +(mpm/side-boundary-based? #f) +(mpm/enable-avg-option? #f) +(mpm/rmax-extension-factor 0.2) +(mpm/ps-based? #f) +(mpm/exclude-revflow-faces-averaging? #f) +(mpm/allow-revflow? #t) +(mpm/variable-width-bands? #t) +(mpm/debug-bins-verbose 0) +(mpm/viability-conds 0.3) +(mpm/viability-check? #t) +(mpm/adjust-rotation? #f) +(mpm/vmag-scale? #t) +(mpm/inner-iterations 4) +(mpm/debug-verbose -1) +(mpm/primitive-var-avg? #t) +(mpm/scale-mflux? #t) (mixing-plane/rgrad-copy-method 0) (mixing-plane/gradient-copy-method 0) -(mixing-plane/show-averaging-method? #f) (mixing-plane/include-species? #f) (mixing-plane/reduce-backflow? #f) (mixing-plane/ave-method 0) @@ -151,16 +267,49 @@ (mixing-plane/fix-pressure-level? #f) (mixing-plane/omega 1.) (mixing-planes ()) -(wall/nonorth-limiter-fmax 0.7) -(wall/nonorth-limiter-fmin 0.5) -(wall/nonorth-limiter? #f) +(ablation/wall-threads ()) +(ablation/mdm-auto? #t) +(ablation/vielle-n 0) +(ablation/vielle-a 0) +(ablation/model 1) +(ablation/on? #f) +(perforated/cd-profile? (0)) +(perforated/report? #f) +(perforated/mf-urf 1) +(perforated/input-file-name "") +(perforated/parameters (())) +(perforated/model-setup ((-1 0 #t #t #f (-1 0 0 0)))) +(perforated/model-setup-valid? ()) +(perforated/num-inj-thread 1) +(perforated/model-method 0) +(perforated/model-on? #f) +(perforated/version "") +(perforated/switch? #f) +(wall/secondary-gradient-limiter-fmax 0.9) +(wall/secondary-gradient-limiter-fmin 0.7) +(energy/wall/secondary-gradient-limiter-fmax 0.9) +(energy/wall/secondary-gradient-limiter-fmin 0.7) +(energy/wall/modify-orthogonality-limits? #f) +(energy/wall/secondary-gradient-limiter? #f) +(uds/wall/secondary-gradient-limiter-fmax 0.9) +(uds/wall/secondary-gradient-limiter-fmin 0.7) +(uds/wall/modify-orthogonality-limits? #f) +(uds/wall/secondary-gradient-limiter? #f) +(wall/boundary-solid-advection-rotating? #f) +(wall/boundary-solid-advection? #t) +(wall/new-advection-linearization-t? #f) +(wall/new-solid-advection? #t) +(wall/vnormal-tolerance 20.) +(wall/check-vnormal-solid? #t) (wall/finite-slip-condition? #f) +(outflow/multiplicative-correction? #f) (mfinlet/ecmf-linearize? #f) (mfinlet/forced-supersonic-treatment? #f) (mfinlet/mfout-mach 0.98) (mfinlet/mfout-urf 1.) (mfinlet/non-constant-flux? #t) (mfinlet/allow-reverse-flow? #t) +(pinlet/use-normal-mach-number? #t) (pinlet/press-v13-init? #t) (pinlet/use-extrapolated-pressure? #f) (pinlet/enhanced-backflow? #f) @@ -168,6 +317,7 @@ (non-reflecting/recon? #t) (non-reflecting/omega 0.75) (non-reflecting-bcs? #f) +(target-mfr-solver-flux? #t) (target-mfr-mach 0.98) (target-mfr-pmin 1) (target-mfr-pmax 5000000.) @@ -363,7 +513,6 @@ (spark/fix-rtrans? #f) (spark/rtrans-max-cells 10000.) (spark/rtrans-min-cells 3.) -(spark/r145? #f) (spark/flame-speed-model 1) (spark/burn-old-time-levels? #f) (spark/burn-init-fuel? #f) @@ -443,6 +592,8 @@ (acoustics/source-filename "") (acoustics/base-filename "") (acoustics/frequency 1) +(models/equation-order 0) +(models/timer-threshold-percentage 5) (models/timer-cutoff 0.1) (show-beta-features? #f) (charge-density/enabled? #f) @@ -456,6 +607,7 @@ (target/sv-list ()) (target/domain-list ()) (target/thread-list ()) +(turbo-mode/enable? #f) (turbo-vector? #f) (turbo-projection/method (0)) (turbo-search/method (1)) @@ -473,9 +625,20 @@ (turbo/zones/hub ()) (turbo/topology-list ()) (turbo? #f) +(network/thermal-coupling-options 2) (network/history-file "") (save-network-history? #f) -(sc/use-tref-in-htc-calculation? #f) +(profile/parameter-list ()) +(sc/update-mesh-motion-before-mesh-transfer? #t) +(reference-yplus 300) +(sc/volumetric-cell-zones ()) +(sc/coupling-iteration-index 1) +(sc/coupling-step-index 1) +(sc/enable-new-defaults-for-transfers? #f) +(sc/use-global-node-weights? #t) +(sc/number-of-substeps-per-coupling-step 1) +(sc/enable-sub-stepping-option-per-coupling-step? #f) +(sc/htc-calculation-method? 0) (sc/htc-epsilon 1e-06) (sc/enable-thermal-stabilization? #f) (sc/enable-htc-dt-in-solid-cell? #f) @@ -492,16 +655,19 @@ (oned/library-case "") (oned/library-name "none") (glass-model? #f) -(shell/io? #f) +(shell/oto-nci? #t) +(shell/modified-sliding-interfaces ()) +(shell/nci-parent-info ()) +(shell/original-wall-info ()) +(shell/thread-ids ()) +(shell/zone-io? #t) (shell/check-contact-points? #f) (shell/allow-partitioning? #f) -(shell/connectivity-after-slitting? #f) (mesh/new-encap-from-tui? (#f #f)) (shell/skip-creation? #f) (shell/verbosity? #f) (shell/restore-inner-temp? #f) (shell/new-encapsulation? #t) -(shell/encap-only-coupled-walls? #f) (shell/create-edge-children? #f) (shell/multi/data ()) (shell/multi/cond-rule 1) @@ -516,6 +682,15 @@ (cht/solid-time-step-auto? #t) (cht/solid-time-step-size 10) (cht/enable-solid-time-step? #f) +(cht/unsteady/enable-mapped-intf-tui? #f) +(cht/unsteady/time-sampling-info ()) +(cht/use-yplus-based-htc? #f) +(cht/fixed-htc 200) +(cht/use-fixed-htc? #f) +(cht/use-rel-ref-temperature? #f) +(cht/delta-t-percent 0.) +(cht/delta-t 0.) +(cht/enhanced-mapped-connectivity? #t) (cht/explicit-profile-splitted-conservation? #t) (cht/solid-solid/allow-explicit? #f) (cht/auto-tolerance/scaling-factor 1.25) @@ -560,11 +735,12 @@ (monitor/commands ()) (monitor/convergence-running-averages 1) (monitor/convergence-def-list (((check-nth 1) (logic #f)))) +(monitor/integrate-over-state ()) (monitor/average-over-state ()) -(monitor/report-definitions ()) +(monitor/report-definitions (((name . "y_force") (report-definition force (force-vector 0. 1. 1.) (reference-frame . "global") (old-props) (thread-ids 7) (thread-names moving_base) (per-zone? . #f) (average-over . 1) (report-type . "") (scaled? . #f) (retain-instantaneous-values? . #f))))) (monitor/plotsets ()) (monitor/convergencesets ((frequency . 1) (condition . #f) (conv-reports) (check-for . #f))) -(monitor/monitorsets ()) +(monitor/monitorsets (((name . "y_force-rfile") (old-props) (file-name . "./y_force-rfile.out") (frequency . 1) (flow-frequency . 1) (itr-index . "1") (run-index . "0") (frequency-of . "time-step") (report-defs "y_force" "flow-time") (print? . #t) (active? . #t) (write-instantaneous-values? . #f)))) (monitor/volume ()) (monitor/surfaces ()) (monitor/compute-node-values? #t) @@ -574,9 +750,12 @@ (graphics/scene ()) (graphics/particle-tracks ()) (graphics/pathlines ()) +(graphics/lic ()) +(graphics/vectors/auto-scale-average? #t) (graphics/vectors ()) (graphics/contours ()) (graphics/mesh ()) +(report/energy-flux/include-viscous-work? #t) (report/cell-value? #f) (report/forces/print-vec? #t) (mesh_user_defined_cells_freed? #f) @@ -587,6 +766,7 @@ (statistics/plot? #f) (statistics/print? #f) (statistics/monitors ()) +(monitor/aerodamping ()) (monitor/zero-time-values? #t) (fmon/unscaled? #f) (monitor/window 0) @@ -595,7 +775,6 @@ (monitor/drag ()) (fmon/old-method? #f) (reference-frames/entity-link? #f) -(reference-frames (((name . "global") (parent . "") (initial-state (origin 0. 0. 0.) (orientation (angle . 0.) (axis 0. 0. 0.)) (quat 1. 0. 0. 0.)) (current-state (origin 0. 0. 0.) (orientation (angle . 0.) (axis 0. 0. 0.)) (quat 1. 0. 0. 0.)) (motion (motion-type . 0) (velocity 0. 0. 0.) (acceleration 0. 0. 0.) (omega (angle . 0.) (axis 0. 0. 0.)) (alpha (angle . 0.) (axis 0. 0. 0.)) (update . "")) (read-only? . #t)))) (file-write/frequency 1) (mmp/autosave/file-decimal-digits 6) (mmp/autosave/file-suffix-type "time-step") @@ -604,8 +783,6 @@ (mmp/autosave/numfiles 0) (mmp/autosave/frequency/data 1) (mmp/autosave/frequency/case 1) -(spatial/topology ()) -(simulation/topology ()) (wb/container/flags ()) (wb/original-mesh? #t) (wb/original-case? #t) @@ -621,6 +798,7 @@ (autosave/overwrite? #f) (autosave/filename "") (autosave/numfiles 0) +(autosave/flow-time-freq/data 0) (autosave/frequency/data 0) (autosave/frequency/case 0) (hg/wilcox_r14_r (44000000. 0. 81670.)) @@ -1001,6 +1179,10 @@ (tvar/scheme 1) (tvar/relax 0.9) (tvar/solve? #f) +(soot-mom/src-linearization-apfac 0.5) +(soot-mom/integration-method 1) +(soot-mom/src-linearization-const 0.5) +(soot-mom/src-linearization? #t) (soot-mom/clip-vars? #f) (soot-mom/init-agg-values (0. 0. 0. 0. 0. 0. 0. 0. 0. 0.)) (soot-mom/agg-exp-urf (1. 1. 1. 1. 1. 1.)) @@ -1060,6 +1242,60 @@ (soot-mom/allow-max-moments? #f) (soot-mom/enable? #f) (soot-mom/show-mom? #t) +(sootspecies-21/patch 0) +(sootspecies-20/patch 0) +(sootspecies-19/patch 0) +(sootspecies-18/patch 0) +(sootspecies-17/patch 0) +(sootspecies-16/patch 0) +(sootspecies-15/patch 0) +(sootspecies-14/patch 0) +(sootspecies-13/patch 0) +(sootspecies-12/patch 0) +(sootspecies-11/patch 0) +(sootspecies-10/patch 0) +(sootspecies-9/patch 0) +(sootspecies-8/patch 0) +(sootspecies-7/patch 0) +(sootspecies-6/patch 0) +(sootspecies-5/patch 0) +(sootspecies-4/patch 0) +(sootspecies-3/patch 0) +(sootspecies-2/patch 0) +(sootspecies-1/patch 0) +(sootspecies-0/patch 0) +(soot-mom/user-rates? #f) +(soot-mom/soot-mech-exist? #f) +(soot-mom/mech-chemkin? #f) +(soot-mech-imported #f) +(soot-mech-on? #f) +(soot-mech-userdefined #f) +(sootspecies/default (0)) +(sootspecies/pseudo-relax 0.75) +(sootspecies/pseudo-specific? #f) +(sootspecies/pseudo-cycle-type 3) +(sootspecies/pseudo-time-scale-factor 1.) +(sootspecies/pseudo-implicit-relax 1.) +(sootspecies/secondary-gradient? #t) +(sootspecies/inlet-diffusion? #f) +(sootspecies/sct 0.7) +(sootspecies/urf 1.) +(sootspecies/explicit-relax? #f) +(sootspecies/relax 1.) +(sootspecies/normalize-sootspecies? #t) +(sootspecies/residual-tolerance (1e-05)) +(sootspecies/iter-tolerance (0.05)) +(sootspecies/max-iter (5)) +(sootspecies/set-urf-together? #t) +(sootspecies/explicit-relax (1.)) +(sootspecies/scheme 1) +(sootspecies/amg-stabilization 0) +(sootspecies/amg-method 0) +(sootspecies/cycle-type 0) +(sootspecies/amg-beta 0.7) +(sootspecies/amg-alpha 0.1) +(sootspecies/solve? #f) +(sootspecies/active? #f) (pollut/unity-le-use-k? #t) (pollutant/old-injection-material-sources-need-update? #f) (pollutant/patch (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) @@ -1078,6 +1314,54 @@ (pollut/equil-spe-list ()) (pollut/orig-spe-list ()) (pollut/detailed-chem-post-proc? #f) +(pdftss/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(pdftss/dual-ts-specific? #t) +(premix-g-var/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(premix-g-var/dual-ts-specific? #t) +(premixc/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(premixc/dual-ts-specific? #t) +(fvar2/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(fvar2/dual-ts-specific? #t) +(fvar/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(fvar/dual-ts-specific? #t) +(fmean2/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(fmean2/dual-ts-specific? #t) +(fmean/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(fmean/dual-ts-specific? #t) +(retheta/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(retheta/dual-ts-specific? #t) +(intermit/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(intermit/dual-ts-specific? #t) +(drsm/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(drsm/dual-ts-specific? #t) +(nut/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(nut/dual-ts-specific? #t) +(omega/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(omega/dual-ts-specific? #t) +(epsilon/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(epsilon/dual-ts-specific? #t) +(kl/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(kl/dual-ts-specific? #t) +(k/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(k/dual-ts-rm-atau-local-resid? #t) +(k/dual-ts-specific? #t) +(enthalpy/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(enthalpy/dual-ts-specific? #t) +(tvar/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(tvar/dual-ts-specific? #t) +(temperature/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(temperature/dual-ts-specific? #t) +(w-swirl/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(w-swirl/dual-ts-specific? #t) +(mom/dual-ts-limit-eff-relax-list (#f 0.2 0.8)) +(mom/dual-ts-rm-atau-local-resid? #t) +(dual-ts/verbosity 0) +(dual-ts/dtau-prec-vel (#t #t #t)) +(dual-ts/compute-every-subiter? #t) +(dual-ts/cfl-method "dbns") +(dual-ts/cfl 5.) +(dual-time-stepping? #f) +(mom/pbns-timestepping-refactor-t? #f) (pressure/pseudo-cpl-expl-omega-v 0.5) (pressure/pseudo-cpl-expl-omega-p 0.5) (pressure-coupled/mom/pseudo-explicit-relax 0.5) @@ -1090,6 +1374,7 @@ (soot-mom/pseudo-cycle-type 3) (disco/pseudo-cycle-type 3) (p1/pseudo-cycle-type 3) +(twotemp/pseudo-cycle-type 3) (wetsteam/pseudo-cycle-type 3) (iac/pseudo-cycle-type 3) (pb-disc/pseudo-cycle-type (3)) @@ -1127,6 +1412,7 @@ (tvar/pseudo-cycle-type 3) (temperature/pseudo-cycle-type 3) (soot-mom/pseudo-time-scale-factor 1.) +(twotemp/pseudo-time-scale-factor 1.) (wetsteam/pseudo-time-scale-factor 1.) (iac/pseudo-time-scale-factor 1.) (pb-disc/pseudo-time-scale-factor (1.)) @@ -1166,6 +1452,7 @@ (dynamesh/smooth/laplace/pseudo-time-step 1.) (wd-phi/pseudo-time-scale-factor 1.) (soot-mom/pseudo-implicit-relax 1.) +(twotemp/pseudo-implicit-relax 0.1) (wetsteam/pseudo-implicit-relax 0.1) (iac/pseudo-implicit-relax 0.3) (pb-disc/pseudo-implicit-relax (0.5)) @@ -1201,6 +1488,7 @@ (tvar/pseudo-implicit-relax 0.9) (temperature/pseudo-implicit-relax 1.) (soot-mom/pseudo-specific? #f) +(twotemp/pseudo-specific? #t) (wetsteam/pseudo-specific? #t) (iac/pseudo-specific? #t) (pb-disc/pseudo-specific? (#t)) @@ -1240,6 +1528,7 @@ (turb-viscosity/pseudo-relax 1.) (body-force/pseudo-relax 1.) (density/pseudo-relax 1.) +(twotemp/pseudo-relax 0.75) (wetsteam/pseudo-relax 0.75) (iac/pseudo-relax 0.75) (pb-disc/pseudo-relax (0.75)) @@ -1284,6 +1573,7 @@ (delh/pseudo-relax 0.9) (drift/pseudo-relax 0.1) (pseudo/energy-solid-dt-in-melt-porous-zone? #t) +(pseudo/autotime-step-option 1) (pseudo/autotime-lscale-userspec 1.) (pseudo/autotime-lscale-option 1) (pseudo-auto-time-verbosity 0) @@ -1292,11 +1582,29 @@ (pseudo-auto-time-solid-scale-factor 1.) (pseudo-auto-time-solid? #t) (pseudo-auto-time-step 1.) -(pseudo-auto-time-step-option 0) (pseudo-auto-time-step? #t) (pseudo/pv-coupling-all? #f) (pseudo-transient-formulation? #f) (pseudo-time-step 1.) +(dpm/max-vf-allowed-for-blocking 0.95) +(dpm/blocking-effect? #f) +(dpm-to-vof/vof-to-lwf/second-layer-by-nodes? #t) +(dpm-to-vof/vof-to-lwf/vof-cutoff 0.001) +(dpm-to-vof/average-temp-not-enth? #t) +(dpm-to-vof/max-n-adaption-cycles-to-do 8) +(dpm-to-vof/smooth-vol-vs-rad-interpol? #f) +(dpm-to-vof/allowed-relative-deviation 0.5) +(dpm-to-vof/interpol-cycle-tolerance 0.001) +(dpm-to-vof/interpol-cycle-vol-extend-factor 1.5) +(dpm-to-vof/interpol-cycle-interval-vol-frac 0.1) +(dpm-to-vof/num-of-vol-vs-rad-interpol-bins 100) +(dpm-to-vof/num-of-vol-vs-rad-interpol-rounds 8) +(dpm-to-vof/number-of-para-cycle-extra-rounds 8) +(dpm-to-vof/move-p-to-liq-core/vof-epsilon 1e-05) +(dpm-to-vof/conversion-chunk-size 1000) +(dpm-to-vof/search-radius-add-factor 2.) +(dpm-to-vof/search-radius-factor 3.) +(vof-to-dpm/report-sig-fig 8) (vof-to-dpm/lump-charact/calc-vof-slope-from-node-values? #t) (vof-to-dpm/lump-convert/average-enthalpy? #t) (vof-to-dpm/lump-detect/vof-surface 0.999999) @@ -1304,6 +1612,13 @@ (vof-to-dpm/lump-detect/max-lump-vof 1.1) (vof-to-dpm/lump-detect/vof-inside 0.9) (vof-to-dpm/force-over-invalid-setup #f) +(dpm/liquid-p/max-vof 2.) +(dpm/liquid-p/relax 1.) +(dpm/liquid-p/cole-n 7.) +(dpm/liquid-p/speed-of-sound 5.) +(dpm/liquid-p/force 0) +(dpm/ddpm-level-form-residual-compatibility? #f) +(dpm/dpm-wall-force? #t) (dpm/momentum-relaxation-time-ratio 100.) (dpm/minimum-wall-impact-angle 0.0001745) (dpm/push-from-wall-fraction 0.005) @@ -1312,6 +1627,9 @@ (dpm/erosion/save-steps 0) (dpm/erosion/file-name "") (dpm/erosion/counter 0) +(dpm/erosion/simulation-control/twoway-couple-dpm-and-flow? #f) +(dpm/erosion/simulation-control/number-of-iters-per-tstep 20) +(dpm/erosion/simulation-control/number-of-tsteps-per-loop 1) (dpm/erosion/simulation-control/number-of-flow-iterations 100) (dpm/erosion/smoothing/kernel 1) (dpm/erosion/smoothing/sweeps 1) @@ -1324,15 +1642,23 @@ (dpm/erosion/dynamesh/min-dt 0.) (dpm/erosion/dynamesh/dt 60) (dpm/erosion/dynamesh/elapsed-time 0.) +(dpm/erosion/dynamesh/general/abrasive-erosion? #f) (dpm/erosion/dynamesh/general/wall-density 2719) (dpm/erosion/dynamesh/general/ref-erosion-model 1) (dpm/erosion/dynamesh/wall-surfaces ()) (dpm/erosion/dynamesh/auto-setup? #t) (dpm/erosion/dynamesh/cplng? #f) +(dpm/update-pressure-derivatives #t) +(dpm/set-injection-scaling 0.1) (dpm/visualize-injections? #t) (dpm/dpm-in-ee/mixture-acceleration #f) (dpm/dpm-in-ee/enable? #f) (dpm/visualize-rotation? #f) +(dpm/volume-injection/trying-cycle-stop-criterion? #t) +(dpm/volume-injection/maximum-tries 100) +(dpm/volume-injection/minimum-cell-volume -1.) +(dpm/volume-injection/minimum-parcels-per-cell 5) +(dpm/volume-injection/zone-injection-method 1) (dpm/volume-injection/use-cartesian-mesh? #f) (dpm/volume-injection/show-bound-geom? #f) (dpm/cell-functions/level 0) @@ -1346,16 +1672,27 @@ (dpm/io/xml-encoding "iso-8859-1") (dpm/io/buffer-size 10000) (dpm/allow-nita? #f) +(dpm/statistics/format 0) (dpm/verbosity 1) +(dpm/transient/changing-mesh/discard-grads? #t) (dpm/transient/fix-high-particle-age? #f) (dpm/transient/fix-low-particle-age? #t) (dpm/transient/export-name "particle-data-1") +(dpm/pic/mp? #f) +(dpm/pic/enabled? #f) +(dpm/log-id -1) +(dpm/dpm-vof/solids-drag/scaling-factor 0.3) +(dpm/dpm-vof/solids-drag/enable? #f) +(dpm/dpm-vof/close-packing/threshold-frac-pack-lim-vof 0.985) +(dpm/dpm-vof/close-packing/sub-model 0) +(dpm/dpm-vof/implicit-drag-udf? #t) (dpm/dpm-vof/euler/allow-parallel-hybrid? #f) (dpm/dpm-vof/euler/check-neighbour-vof? #t) (dpm/n-dpm-domains 0) (dpm/dpm-vof-gran-temp-lower-limit 1e-05) (dpm/dpm-vof-velocity-correction? #f) (dpm/dpm-vof-scheme-type 0) +(dpm/average/heat-coeff-volume? #f) (dpm/dpm-vof-show-internal-variables? #f) (dpm/dpm_vof? #f) (dpm/static-film-condensation? #t) @@ -1365,6 +1702,8 @@ (dpm/latent-heat-at-boiling? #t) (dpm/absolute-pressure? #t) (dpm/raoult? #f) +(dpm/multicomponent-remove-particle-at-rk-failure? #f) +(dpm/multicomponent-min-dt 0.001) (dpm/multicomponent-maximum-step-reductions 500) (dpm/multicomponent-maximum-integration-steps 10000) (dpm/multicomponent-tolerance 1e-05) @@ -1382,6 +1721,8 @@ (dpm/boundary-face-smoothing/number-of-sweeps 3) (dpm/erosion/couple-with-mdm #f) (dpm/surf-inj-cont-partid? #t) +(dpm/random/seed-injection-name? #f) +(dpm/random/seed-timestep-corrected? #f) (dpm/random/seed-timestep? #t) (dpm/random/seed-iteration? #t) (dpm/random/use-particle-seeds? #t) @@ -1391,9 +1732,18 @@ (dpm/uniform-random 0.5) (dpm/random-uniform? #t) (dpm/tracking-order-randomizations 0) +(dpm/set-particle-law-on-first-timestep? #f) (dpm/high-temperature-correction? #f) (dpm/allow-supercritical-pressure? #t) (dpm/allow-condensation? #f) +(dpm/check-critical-flux? #f) +(dpm/apply-leidenfrost-on-droplets? #t) +(dpm/apply-leidenfrost? #f) +(dpm/check-leidenfrost-on-faces? #t) +(dpm/variable-pr-number-in-boiling? #t) +(dpm/allow-mc-boiling-failure? #f) +(dpm/mc-film-boiling-formulation 1) +(dpm/mc-boiling-formulation 1) (dpm/latent-heat-temperature-depend? #f) (dpm/boiling-pressure-depend? #f) (dpm/rkvaporization? #f) @@ -1405,6 +1755,8 @@ (dpm/virtual-mass? #f) (dpm/pressure-force? #f) (dpm/pressure-force-explicit? #f) +(dpm/at-time-step/do-before-calc-mass-flux/dpm-to-vof? #t) +(dpm/at-time-step/do-before-calc-mass-flux/always? #f) (dpm/flush-sources-at-timestep? #f) (dpm/fluid-flow-time-stepping? #t) (dpm/create-particles-with-particle-time-step? #f) @@ -1437,6 +1789,8 @@ (dpm/scr/urea-depo-risk/cryst-max-mass-fraction 1.) (dpm/scr/urea-depo-risk/cryst-min-mass-fraction 0.43) (dpm/scr/urea-depo-risk/enabled? #f) +(dpm/wall-film-ot-based-interaction? #f) +(dpm/wall-film/abort-on-face-track-failure? #f) (dpm/wall-film-expert? #f) (dpm/film-interpolate-mesh? #t) (dpm/film-splash-angle-slope 0.266) @@ -1456,20 +1810,28 @@ (dpm/pathlines-low-order? #f) (dpm/pathlines-relative? #t) (dpm/pathline-face-intersection-algorithm 0) +(dpm/particle-relocation-with-cellids-after-migration? #t) +(dpm/particle-relocation-with-cellids? #t) (dpm/particle-relocation 2) (dpm/particle-synchronization 1) (dpm/particle-recreate 1) (dpm/particle-reset 2) (dpm/particle-repartition-algorithm 3) +(dpm/use-single-prec-face-point-method? #f) (dpm/locate/method 0) (dpm/face-intersection-algorithm 5) (dpm/display-steps 1) -(dpm/lowest-mass 5.236e-25) (dpm/leidenfrost-dt 50) (dpm/lowest-film-diameter 1e-07) (dpm/lowest-diameter 1e-08) (dpm/number-of-cells-to-cross 1.) (dpm/acceleration-to-faces-for-rk? #t) +(dpm/boiling/subcooling-temperature-offset 0.) +(dpm/boiling/pabs-to-pvap-ratio 1.000001) +(dpm/nusselt-correlation 1) +(dpm/timestep-limiter/use-time-to-boil? #f) +(dpm/timestep-limiter/thermal-relaxation-time-scale-factor 1.) +(dpm/timestep-limiter/thermal-relaxation-time? #f) (dpm/auto-max-step-size-refinements 20) (dpm/auto-max-error 1e-05) (dpm/auto-tracking-scheme-selection? #t) @@ -1488,19 +1850,49 @@ (dpm/average/kernel-gaussian 1.) (dpm/average/kernel 2) (dpm/average/nodes? #f) +(dpm/variable-interpolation/bci/nci-node-correction-algorithm 1) +(dpm/variable-interpolation/bci/in-time? #f) +(dpm/variable-interpolation/bci/use-face-udm? #f) +(dpm/variable-interpolation/bci/clip-species-fractions? #f) +(dpm/variable-interpolation/bci/extrapolate-from-subtet? #t) +(dpm/variable-interpolation/bci/interpolate-vof? #t) +(dpm/variable-interpolation/bci/interpolate-flow-gradients? #t) +(dpm/variable-interpolation/barycentric? #f) +(cp/interpolate #f) +(laminar-viscosity/interpolate #f) +(density/interpolate #f) +(uw-stress/interpolate #t) +(vw-stress/interpolate #t) +(uv-stress/interpolate #t) +(ww-stress/interpolate #t) +(vv-stress/interpolate #t) +(uu-stress/interpolate #t) +(omega/interpolate #t) +(epsilon/interpolate #t) +(k/interpolate #t) (temperature/interpolate #t) (z-velocity/interpolate #t) (y-velocity/interpolate #t) (x-velocity/interpolate #t) +(pressure/interpolate #f) +(dpm/in-situ-data-redu/logscale? (#f #f #f #f #f #f #f #f #f)) +(dpm/in-situ-data-redu/n-steps (2 2 2 1 1 1 1 1 1)) +(dpm/in-situ-data-redu/cellwise? #t) +(dpm/in-situ-data-redu/lwf? #t) (dpm/gradient-interpolation? #f) +(dpm/variable-interpolation/coarse-new? #f) +(dpm/variable-interpolation/coarse-sources? #f) +(dpm/variable-interpolation/coarse-test-length 0.) +(dpm/variable-interpolation/coarse-factor 1.) +(dpm/variable-interpolation/coarse? #f) +(dpm/variable-interpolation/separate-turb-fields? #t) +(dpm/variable-interpolation/default-all-on? #f) (dpm/variable-interpolation/kernel-gaussian 1.) (dpm/variable-interpolation/stencil 1) (dpm/variable-interpolation/kernel 2) (dpm/variable-interpolation/nodes? #f) -(dpm/variable-interpolation/in-time? #f) (dpm/variable-interpolation/velocity-wall-interpolation? #f) (dpm/temperature-interpolation? #f) -(dpm/variable-interpolation/barycentric? #f) (dpm/variable-interpolation? #t) (dpm/search-before-iteration? #f) (dpm/closest-face-search? #t) @@ -1514,15 +1906,22 @@ (dpm/full-pointwise-search? #f) (dpm/nd-point-search/polyhedron-tet-division-level 0) (dpm/nd-point-search? #t) +(dpm/sample/plane/tolerance 1e-12) (dpm/sample-file/sort? #f) (dpm/sample-pre "") (dpm/collect-sample? #f) (dpm/relocate-unsteady-particles-for-mdm? #t) -(dpm/consider-transient-mesh-movement? #t) (dpm/consider-discrete-phase-volume-fraction? #t) +(dpm/relax-linear-accum 0.) +(dpm/view-full-sources? #t) +(dpm/replace-mass-source-by-mixture-fraction? #f) +(dpm/linearize-mixture-fraction-source-terms? #f) +(dpm/dpm-linear-source-term-change? #f) (dpm/species-ap-coeff-multiplier 1.) (dpm/energy-ap-coeff-multiplier 1.) (dpm/momentum-ap-coeff-multiplier 1.) +(dpm/source-linearization-limit 0.) +(dpm/constant-linearized-source? #f) (dpm/source-terms-linearized? #f) (dpm/eulerian_source_term_coupling? #f) (dpm/sources-max-part-ap 0.1) @@ -1538,12 +1937,16 @@ (dpm/pressure-swirl-atomizer-swirl-direction 1) (dpm/atomizer-downstream-try-locate? #t) (dpm/atomizer-downstream-iterations 1) +(dpm/atomizer-downstream-closest-cell-epsilon 0.001) (dpm/atomizer-spread-param 3.5) (dpm/tab-spread-parameter 3.5) (dpm/lower-tab-diameter-ratio 0.) (dpm/number-tab-diameters 2) (dpm/random-tab-diam? #f) (dpm/all-particles-in-liquid-core? #t) +(dpm/spray-suite/schmehl-min-diam 1e-06) +(dpm/spray-suite/schmehl-np 1) +(dpm/spray-suite-schmehl? #f) (dpm/spray-suite/ssd-nu-t 1.) (dpm/spray-suite/ssd-x-si -0.1) (dpm/spray-suite/ssd-x-ratio 1.2) @@ -1555,11 +1958,18 @@ (dpm/spray-suite-ssd? #f) (dpm/spray-suite/madabhushi-wave-child-stay-wave? #t) (dpm/spray-suite/madabhushi-pe-child-stay-pe? #t) -(dpm/spray-suite/madabhushi-smallest-diameter 5e-05) +(dpm/spray-suite/madabhushi-min-diam 5e-05) +(dpm/spray-suite/madabhushi-cb-vnormal-scaling-factor 5.) +(dpm/spray-suite/madabhushi-vnormal-scaling-factor 5.) +(dpm/spray-suite/madabhushi-cb-np-child 5) (dpm/spray-suite/madabhushi-np-child 5) (dpm/spray-suite/madabhushi-jet-diameter 0.001) +(dpm/spray-suite/madabhushi-ligament-factor 0.4) +(dpm/spray-suite/madabhushi-column-drag-cd 1.48) +(dpm/spray-suite/madabhushi-c0 3.44) (dpm/spray-suite-madabhushi? #f) (dpm/spray-suite-khrt? #f) +(dpm/spray-suite/wave-vnormal-scaling-factor 1.) (dpm/spray-suite-wave-rayleigh-growth? #t) (dpm/wave-mass-cutoff-adjust? #t) (dpm/spray-suite-wave-collide? #t) @@ -1569,6 +1979,7 @@ (dpm/spray-suite-break-up? #f) (dpm/spray-suite-coalescence? #t) (dpm/spray-suite-beta-models? #f) +(dpm/coalesc/avg-enth-not-temp? #f) (dpm/this-inject-break-up? #t) (dpm/collision/dem/max_van_der_waals_range 1e-06) (dpm/collision/dem/force-range-factor 0.) @@ -1597,6 +2008,7 @@ (dpm/collision/min-time-step 5e-07) (dpm/collision/event-type 0) (dpm/collision/model-type 0) +(dpm/collision/sort-collision-partners? #f) (dpm/collision/stencil-size 0) (dpm/collision/stencil-size-use-ccm-default? #t) (dpm/collision/stencil-size-use-cfdcm-default? #t) @@ -1626,8 +2038,17 @@ (pdf-transport-expert? #f) (pdf-transport/solve? #t) (dpm/max-species-sources 50) +(dpm/surface-injection/allow-non-bnd-surf-with-mdm? #f) (dpm/surface-injection-delta 1e-05) (dpm/higher-order? #t) +(dpm/strip-beta 0.3) +(dpm/strip-m-const 0.5) +(dpm/strip-f-const 0.14) +(dpm/film-stripping-crit 0) +(dpm/film-stripping-scheme 0) +(dpm/max-density 100000.) +(dpm/min-density 0.001) +(dpm/devolat-limit 0.01) (dpm/splash-vel-limit-a 1.) (dpm/splash-vel-limit-n 0.5) (dpm/splash-size-limit-high 0.22) @@ -1649,6 +2070,7 @@ (dpm/e-2-crit-0 16.) (dpm/thermolysis-limit 5000) (dpm/enable-spotty-film-corrections? #t) +(dpm/scale-film-vel-by-res-time? #t) (dpm/scale-by-residence-time? #f) (dpm/smooth-film-height? #f) (dpm/film-breakup-particles 0) @@ -1657,8 +2079,9 @@ (dpm/underrelax-film-height 1.) (dpm/use-previous-film-height? #f) (dpm/film-intersection-scheme? #f) -(dpm/film-formulation-r15? #f) (dpm/film-boiling-rate? #t) +(dpm/film-internal-drag-vel-frac-limit 0.8) +(dpm/film-internal-drag-coefficient 0.) (dpm/limiting-film-height 5e-06) (dpm/wall-film-heat-transfer? #f) (dpm/critical-transition-factor 1.) @@ -1669,6 +2092,7 @@ (dpm/export-sig-fig 7) (dpm/report-sig-fig 5) (dpm/track-in-absolute-frame? #t) +(dpm/particle-history-format 0) (dpm/write-particle-history? #f) (dpm/per-inj-thread-summaries? #f) (dpm/summaries-per-injection ()) @@ -1676,6 +2100,8 @@ (dpm/summary ()) (dpm/eddy-cross-time-factor 1.) (dpm/mu-turb-to-mu-lam 1.) +(dpm/turb-coupling-omega-src-constant 1.) +(dpm/turb-coupling-eps-src-constant 1.5) (dpm/turb-coupling? #f) (dpm/saffman-lift? #f) (dpm/cunningham-correction 1.) @@ -1685,6 +2111,7 @@ (dpm/shape-factor 1.) (dpm/minimum-parcel-number 0.001) (dpm/minimum-parcel-mass 1e-15) +(dpm/wall-jet-level 1) (dpm/wall-jet-interact? #f) (dpm/particle-temperature-limiter? #f) (dpm/accumulate-rates? #f) @@ -1703,12 +2130,76 @@ (dpm/step-length-factor-overset-receptor 5) (dpm/step-length-factor 5) (dpm/use-length-scale? #f) -(dpm/permit-nci-safety-belts? #f) -(dpm/permit-injection-safety-belts? #f) -(dpm/disable-safety-belts? #f) -(dpm/check-subtet-validity? #f) -(dpm/check-cubic-roots? #f) +(dpm/subtet/wallfilm/interpolate-vars? #t) +(dpm/subtet/wallfilm/film-spreading-parameter 0.) +(dpm/subtet/wallfilm/colinearity-tolerance 1.) +(dpm/subtet/wallfilm/search-film-thread-after-remeshing? #f) +(dpm/subtet/wallfilm/include-film-particles-in-sample-file? #f) +(dpm/subtet/wallfilm/freeze-film-properties? #f) +(dpm/subtet/wallfilm/disable-film-stick-regime? #f) +(dpm/subtet/wallfilm/disable-film-particle-acceleration? #f) +(dpm/subtet/wallfilm/project-particle-for-subtet-tracking? #f) +(dpm/subtet/wallfilm/project-particle-to-new-film-face? #t) +(dpm/subtet/wallfilm/num-edge-crossing-tol-refinements 20) +(dpm/subtet/wallfilm/max-edge-crossing-tol-increases 4) +(dpm/subtet/wallfilm/velocity-correction-method 1) +(dpm/subtet/pathline-performance-level 0) +(dpm/subtet/max-velocity-angle-change 5.) +(dpm/subtet/min-velocity-angle-change 1.) +(dpm/subtet/error-control-based-upon-velocity? #f) +(dpm/subtet/use-barycentric-sampling? #f) +(dpm/subtet/search-cell-threads-directly? #f) +(dpm/subtet/minimum-eddy-lifetime-at-birth 1e-07) +(dpm/subtet/boundary-layer-turb-dispersion-constant 0.02) +(dpm/subtet/boundary-layer-dispersion-n-layers 10) +(dpm/subtet/warning-verbosity 1) +(dpm/subtet/maximum-cell-aspect-ratio 20) +(dpm/subtet/reflect-from-orphan-cells? #t) +(dpm/subtet/inject-particles-in-overset-dead-cells? #f) +(dpm/subtet/use-legacy-location-method? #f) +(dpm/subtet/boundary-layer-turb-dispersion? #f) +(dpm/subtet/use-aspect-ratio-in-cell-length? #t) +(dpm/subtet/low-order-intersection-factor 0.) +(dpm/subtet/use-particle-dt-for-axi-intersection-tol? #t) +(dpm/subtet/scale-subtet-intersection-tolerance? #t) +(dpm/subtet/move-particles-traveling-in-subtet-planes? #f) +(dpm/subtet/use-wall-normal-for-node-correction? #f) +(dpm/subtet/zero-node-velocity-on-walls? #f) +(dpm/subtet/zero-gradients-on-walls? #f) +(dpm/subtet/max-turb-disp-face-normal-dot-prod -0.9) +(dpm/subtet/crossing-direction-tolerance 1e-09) +(dpm/subtet/negative-discriminant-limit 1e-10) +(dpm/subtet/parent-face-tolerance 0.0001) +(dpm/subtet/nci-overlap-fraction-cutoff 0.5) +(dpm/subtet/glancing-intersection-tolerance 1e-05) +(dpm/subtet/wallfilm/relocation-tolerance-scaling 1.) +(dpm/subtet/max-intersection-tolerance-fraction 0.1) +(dpm/subtet/missed-face-intersection-tolerance 0.25) +(dpm/subtet/subtet-intersection-tolerance 1e-05) +(dpm/subtet/remove-from-sliding-interface-fraction 0.) +(dpm/subtet/remove-from-moving-plane-fraction 0.05) +(dpm/subtet/remove-from-stationary-plane-fraction 0.001) +(dpm/subtet/remove-reflected-particles-from-walls? #f) +(dpm/subtet/ignore-acceleration-for-intersections? #f) +(dpm/subtet/update-velocity-at-intersection-point? #f) +(dpm/subtet/reflect-pathlines-from-walls? #t) +(dpm/subtet/check-for-missed-intersections? #t) +(dpm/subtet/move-lost-particles-to-donor_cells? #t) +(dpm/subtet/always-reflect-turbulent-fluctuations? #f) +(dpm/subtet/ensure-particle-is-in-cell-after-migration? #t) +(dpm/subtet/check-if-in-cell-before-accumulating-sources? #f) +(dpm/subtet/barycentric-intersections? #f) +(dpm/subtet/check-subtet-before-intersections? #f) +(dpm/subtet/use-quad-face-centroid-with-periodics? #t) +(dpm/subtet/use-quad-face-centroid? #f) +(dpm/subtet/check-subtet-validity? #f) +(dpm/incompletes-cause-regression-failures? #f) +(dpm/specific-warnings-cause-regression-failures? #f) (dpm/use-subtet-tracking? #f) +(dpm/newton-method-max-cycles 20) +(dpm/check-cubic-roots-tolerance 1e-12) +(dpm/check-for-local-min-max? #t) +(dpm/check-cubic-roots? #f) (dpm/injections-list ()) (dpm/relax 0.5) (dpm/niter 10) @@ -1718,12 +2209,21 @@ (dpm/random-pool-size 0) (dpm/cache-size 1) (dpm/write-particle-data-method 1) +(dpm/spawned-particle-relocation-method 1) +(dpm/update-position-before-spawning-children? #t) (dpm/track-spawned-particles? #f) +(dpm/span-particles-use-cell-locator? #t) +(dpm/dpm-domain/expanding/rate-threshold-per-step 0.025) +(dpm/dpm-domain/expanding/check-interval 5) +(dpm/dpm-domain/expanding/check? #f) +(dpm/dpm-domain/exchange-dist-svars? #t) (dpm/dpm-domain/exchange-all-svars? #f) (dpm/dpm-domain/partition-method 1) (dpm/dpm-domain/update-sources-every-flow-iteration? #t) (dpm/dpm-domain/force-init-weight? #f) (dpm/dpm-domain/record-to-udm? #f) +(dpm/dpm-domain/balance/reset-cell-steps/interval 5) +(dpm/dpm-domain/balance/reset-cell-steps/on? #f) (dpm/dpm-domain/balance/weight-scale-factor 0.) (dpm/dpm-domain/balance/interval 100) (dpm/dpm-domain/balance/threshold 50) @@ -1733,7 +2233,8 @@ (dpm/dpm-domain/rank-per-machine 1) (dpm/dpm-domain/verbosity 0) (dpm/dpm-domain/use? #f) -(dpm/parallel/chunk-particle-exchanges? #t) +(dpm/parallel/mt-loop-over-particles? #t) +(dpm/enforce-locks-in-mallocs? #f) (dpm/memory-alloc-limit 524288000) (dpm/parallel/disable-idle-wait? #f) (dpm/parallel/comm-optimization-verbosity 0) @@ -1743,6 +2244,8 @@ (dpm/parallel/auto-sort-particles-for-one-thread? #t) (dpm/parallel/sort-particles-for-tracking? #f) (dpm/parallel/sort-migrant-particles? #t) +(dpm/parallel/hybrid-workpile? #f) +(dpm/parallel/hybrid/deposit-in-order? #f) (dpm/parallel/lb-method 1) (dpm/parallel/group-size-minimum 50) (dpm/parallel/imbalance-tolerant 0.5) @@ -1750,6 +2253,7 @@ (dpm/parallel/dem-hybrid? #f) (dpm/parallel/hybrid? #t) (dpm/parallel/loop-factor 10) +(dpm/parallel/regenerate-chunk-list-always? #t) (dpm/parallel/regenerate-chunk-list? #t) (dpm/parallel/crossover-tolerance 0.02) (dpm/parallel/print-verbosity 0) @@ -1787,7 +2291,6 @@ (transient-vel-predict? #t) (extrapolate-vars? #f) (predict-next-time? #f) -(variable-time-step? #f) (numb-fix-timesteps 1) (mp/dt-factor-max 1.2) (mp/dt-factor-min 0.8) @@ -1842,11 +2345,14 @@ (amg/stall-or-diverge-iter 1) (amg/greedy-coarsening? #f) (amg-coupled/greedy-coarsening? #f) +(amg-coupled/second-layer-protection? #t) +(amg/second-layer-protection? #t) (amg/early-protection? #t) (amg/stall-cycle 5) (amg/protective-enhanced? #t) (amg/protective-iterval 10) (amg/protective? #t) +(amg-coupled/user-defined-linear-solver "") (amg-coupled/global-solve-type 1) (amg-coupled/laplace-coarsening? #f) (amg-coupled/max-global-cycles 20) @@ -1880,6 +2386,13 @@ (y-velocity/extrapolate/cells #t) (x-velocity/extrapolate/cells #t) (pressure/extrapolate/cells #t) +(solver/mode/overset-defaults? #t) +(solver/mode/default-urfs #f) +(solver/mode/tight-amg #f) +(solver/mode/coupled-pseudo-transient #t) +(solver/mode/preview-defaults #f) +(solver/mode/fast #f) +(solver/mode/robust #f) (solver/krylov/verbosity 0) (solver/krylov/skip 1) (solver/krylov/size 10) @@ -1889,7 +2402,23 @@ (solver/precondition/verbosity 0) (solver/precondition/scale-corrections? #f) (solver/precondition/alpha 0.3) +(solver/precondition/max-sweeps 1) +(solver/precondition/method 0) (solver/precondition? #t) +(solver/precondition/reuse 1) +(solver/stabilization/max-iter 50) +(solver/stabilization/gmres/decrease-last-used-krylov-size 0) +(solver/stabilization/gmres/store-last-used-krylov-size? #t) +(solver/stabilization/gmres/flexible-krylov-size? #t) +(solver/stabilization/gmres/conv-break-krylov-loop/ksize 2) +(solver/stabilization/gmres/conv-break-krylov-loop? #t) +(solver/stabilization/gmres/alpha-factor 0.5) +(solver/stabilization/krylov/max-size 50) +(solver/stabilization/krylov/size-last-used 0) +(solver/stabilization/krylov/size 5) +(solver/stabilization/second-layer-protection/gmres/max-iter 50) +(solver/stabilization/second-layer-protection/method 4) +(solver/stabilization/second-layer-protection? #t) (matrix/segregated-diagnostics? #f) (matrix/coupled-diagnostics? #f) (matrix/segregated-row-monitor -2) @@ -1897,6 +2426,9 @@ (matrix/three-files-when-ascii? #f) (matrix/write-ascii? #f) (matrix/system-name "none") +(amg/flatten-coupled-system? #t) +(amg/smoother/sweep-partition-interface? #f) +(amg/smoother/under-relax-factor 1) (amg/cross 0) (amg/dd-diagnostics/system-name "none") (amg/residual-record? #f) @@ -1957,12 +2489,12 @@ (amg/grouping/check-exterior? #f) (amg/icepak/coarsening-assume-symmetry? #t) (amg/coarsening-assume-symmetry? #f) -(amg/group-method 0) +(amg/greedy-force-nonsymmetric? #t) +(amg/group-method-fallback 0) +(amg-coupled/group-method-fallback 0) (amg-coupled/group-method 0) -(amg/grouping-line-factor 100.) -(amg-coupled/max-group-factor 1.5) +(amg/group-method 0) (amg-coupled/min-group-size 1) -(amg/max-group-factor 1.5) (amg/min-group-size 1) (amg/level-group-size ()) (amg/group-size 2) @@ -1971,10 +2503,12 @@ (amg/pre-relaxations 0) (amg/verbosity 0) (relaxation-method "gauss-seidel") +(mp/operating-density/method 0) (op-rho-warn-models-changed? #t) (use-operating-density? #f) (operating-density 1.225) (operating-temperature 288.16) +(body-force/explicit-relax 1.) (body-force/relax 1.) (implicit-bf? #f) (z-pull-velocity/patch 0) @@ -2040,9 +2574,36 @@ (pdftss/scheme 1) (pdftss/relax 1.) (pdftss/solve? #t) +(premixc/fgm-scaling-fac 20.) +(premixc/fgm-ed-beta 20.) +(premixc/max-atf 100.) +(premixc/fgm-use-eff? #f) +(premixc/fgm-use-const-scaling? #t) +(premixc/fgm-ed-ff? #f) +(premixc/fgm-tfs-nres-les 1.) +(premixc/fgm-tfs-delta-user 0.0001) +(premixc/fgm-tfs-delta-type 0) +(premixc/fgm-tfs-include-kcurve? #f) +(premixc/fgm-tfs-abs-strain? #f) +(premixc/fgm-tfs-kmean-method 1) +(premixc/fgm-tfs-x-sc-pp? #f) +(premixc/fgm-tfs-str-udm-id 0) +(premixc/fgm-tfs-user-str-rate? #f) +(premixc/fgm-tfs-strained? #f) +(premixc/fgm-src-param-3 0.) +(premixc/fgm-src-method-3? #f) +(premixc/fgm-src-method-2-option 0) +(premixc/fgm-src-param-2 2.) +(premixc/fgm-src-method-2? #f) +(premixc/fgm-src-param-1 3) +(premixc/fgm-src-method-1? #f) +(premixc/dpm-src-c? #f) +(premixc/sbes-st-blending-method 1) (premixc/use-inst-yceq? #t) (premixc/linearize-ycvar-src? #f) (premixc/include-ycvar-rxn-src? #f) +(premixc/fgm-yc-eq-fac 1.01) +(premixc/rxn-source-apfac 0.) (premixc/rxn-source-ctol 1e-06) (premixc/weighted-c-smallf 1e-06) (premixc/weighted-c? #f) @@ -2157,10 +2718,14 @@ (pdf/multi-fgm-fl-index-id -1) (pdf/multi-fgm-flags (#t #f #f)) (pdf/multi-fgm-on? #f) +(nonad-fla/expert-on? #f) +(pdf/mechanism-available? #t) +(pdf/sbes-turb-comb-update-sync? #t) (pdf/fgm-r17-properties? #f) (pdf/diff-fgm-rich-limit 1.01) (pdf/pdf-use-flamelet-grid? #f) -(pdf/calc-table-max-nodes 0) +(pdf/table-par? #t) +(pdf/table-max-nodes 50) (pdf/fgm-nonad-5d? #f) (pdf/c-interp-tol 0.001) (pdf/nox-int-limit 0.001) @@ -2181,6 +2746,83 @@ (premix/algebraic-variance-const 0.1) (par-premix/un-norm-c? #f) (pdf/prmx-fla-turb-chem-model 2) +(prepdf/nonad-premix-burns? #f) +(prepdf/fla-verbosity 0) +(prepdf/ignore-error-id -100) +(prepdf/write-sl-to-file? #f) +(prepdf/calc-sl-free? #f) +(prepdf/strained-fla-include-sl0? #t) +(prepdf/strained-fla-nonad? #f) +(prepdf/strained-fla-hloss (0)) +(prepdf/strained-fla-write-sc-csv? #f) +(prepdf/strained-fla-npts-regrid 101) +(prepdf/strained-fla-npts-regrid-limit 251) +(prepdf/strained-fla-fuel-spe ("ch4")) +(prepdf/strained-fla-delx 100) +(prepdf/strained-fla-x0 500) +(prepdf/strained-fla-domain-length 0.01) +(prepdf/strained-fla-output-method -1) +(prepdf/strained-fla-unity-le? #f) +(prepdf/strained-fla-auto-refine/max-pts 500) +(prepdf/strained-fla-auto-refine/slope 0.1) +(prepdf/strained-fla-auto-refine/value 0.5) +(prepdf/strained-fla-auto-refine/init-pts 20) +(prepdf/strained-fla-rtol 0.0001) +(prepdf/strained-fla-atol 1e-09) +(prepdf/strained-flamelet? #f) +(prepdf/calc-nfgm-par? #t) +(prepdf/nfgm-hmethod 0) +(prepdf/nonadia-fla-max-inlet-temp 1200) +(prepdf/nonadia-fla-min-burn-temp 1200) +(prepdf/nonadia-fla-tswitch 273.15) +(prepdf/nonadia-fla-burner-dt 10) +(prepdf/fgm-ycin? #t) +(prepdf/nonadia-premix-fgm? #f) +(prepdf/nonadia-fla-h-real-params (300 500 20 200)) +(prepdf/nonadia-fla-h-int-params (21 0)) +(prepdf/nonadia-fla-burner-max-vel-ratio 0.9) +(prepdf/nonadia-fla-uniform-heatloss-grid? #f) +(prepdf/ckcfd-prmx-fla-sflr -1e-06) +(prepdf/ckcfd-prmx-fla-inlet-vel 40) +(prepdf/ckcfd-prmx-fla-hot-stretch 1.2) +(prepdf/ckcfd-prmx-fla-cold-stretch 1.1) +(prepdf/ckcfd-prmx-burner-fla-vel-ratio 0.05) +(prepdf/ckcfd-prmx-burner-fla-min-vel 0.01) +(prepdf/prmx-nonadia-all-freely-propagating? #f) +(prepdf/ckcfd-prmx-max-attempts 50) +(prepdf/ckcfd-prmx-fla-output-method -1) +(prepdf/ckcfd-prmx-fla-auto-refine/slope 0.1) +(prepdf/ckcfd-prmx-fla-auto-refine/value 0.5) +(prepdf/ckcfd-prmx-fla-auto-refine/max-pts 250) +(prepdf/ckcfd-prmx-fla-auto-refine/init-pts 12) +(prepdf/ckcfd-prmx-fla-unity-le? #t) +(prepdf/ckcfd-prmx-fla-real-params (-0.1 0.1 10 0.5 0.1)) +(prepdf/ckcfd-prmx-fla-rtol 0.0001) +(prepdf/ckcfd-prmx-fla-atol 1e-09) +(prepdf/premix-phy-fla-method 1) +(prepdf/premix-physical-flamelet? #f) +(prepdf/nonadia-fgm-fully-premixed? #f) +(prepdf/user-fl-pdf-fsto 0.) +(prepdf/user-fl-pdf-grids? (#f #f #f #f #f #f #f #f)) +(prepdf/user-pdf-cvar-pts ()) +(prepdf/user-pdf-fvar-pts ()) +(prepdf/user-pdf-h-pts ()) +(prepdf/user-pdf-c-pts ()) +(prepdf/user-pdf-f-pts ()) +(prepdf/user-fl-h-pts ()) +(prepdf/user-fl-c-pts ()) +(prepdf/user-fl-f-pts ()) +(prepdf/user-fmean (0.055)) +(prepdf/user-fmean-grid? #f) +(prepdf/sfla-min-temp 500) +(prepdf/fgm-ode-conv-params (0.3 0.03 10)) +(prepdf/fla-ode-conv-params (0.3 0.2 10 0.1 0.0001 1)) +(prepdf/coarse-fla-int-params (16 10 3)) +(prepdf/coarse-fla-real-params (1e-06 0.001 1e-15 1e-05 100000. 0.0001 500 10)) +(prepdf/fla-resid-method-old? #t) +(prepdf/use-coarse-fla-for-init? #t) +(prepdf/atol-params (1 1e-09 1e-18)) +(prepdf/fla-gen-method 1) (prepdf/spe-check-conv ("co" "co2" "oh" "h2o" "h2")) (prepdf/fla-max-int-time 1000000.) (prepdf/uns-fla-fm 1.02) @@ -2192,12 +2834,15 @@ (prepdf/ud-fl-params? #f) (prepdf/diff-x-low-lim 1e-10) (prepdf/prmx-x-low-lim 0.01) +(prepdf/prmx-fla-init-hmethod? #t) (prepdf/prmx-fla-rich-limit 1.25) (prepdf/fla-gen-expert? #t) (prepdf/fla-num-attempts 3) (prepdf/prmx-xsto-lim 0.01) (prepdf/prmx-xsto-c 1000) (prepdf/prmx-num-c-pts 32) +(prepdf/prmx-pv-default? #t) +(prepdf/prmx-fla-alpha-default (("co" . 1) ("co2" . 1) ("h2o" . 0) ("ho2" . 0))) (prepdf/prmx-fla-alpha (("co" . 1) ("co2" . 1))) (prepdf/max-diff-fgms 100) (prepdf/prmx-flamelet-type 1) @@ -2251,6 +2896,7 @@ (prepdf/type 3) (prepdf/stoich (1. 2. -1. -2.)) (prepdf/include-equil-flamelet? #t) +(prepdf/solve-fla-serial? #t) (prepdf/solve-fla-on-host? #f) (prepdf/flamelet-auto-refine/diffuse-x 1.) (prepdf/flamelet-auto-refine/premix-f 0.05) @@ -2280,6 +2926,17 @@ (prepdf/equil-exclude-species ("no" "no2" "n2o" "h2o" "n" "nh" "nh2" "nh3" "nnh" "hcn" "hno" "cn" "h2cn" "hcnn" "hcno" "hocn" "hnco")) (prepdf/equil-include-species ()) (prepdf/bc-species ("ch4" "h2" "jet-a" "n2" "o2")) +(pdf/fla-sl-nspe 1) +(pdf/fla-sl-nf 1) +(pdf/fla-sl-nh 1) +(pdf/fla-sl-available? #f) +(pdf/strained-fla-nh 1) +(pdf/strained-fla-nx 250) +(pdf/strained-fla-nf 32) +(pdf/strained-fla? #f) +(pdf/activate-ft-simplec? #f) +(pdf/nfgm-tab-storage-method 0) +(pdf/hybrid-sbes-comb? #t) (pdf/n-table-scalars 0) (pdf/tabulate-unburnt-props? #t) (pdf/unburnt-cp-ad? #f) @@ -2289,15 +2946,17 @@ (pdf/unity-le-use-k? #t) (pdf/h-prof-linear? #f) (pdf/pollut-compress? #t) -(pdf/dpm-h-source-r145? #f) +(pdf/elem-fsto-option 1) (pdf/fsto 0.06) (pdf/fsto-method 1) (pdf/neutral-species ("n2")) (pdf/burnt-products ("co2" "h2o")) +(pdf/interp-tolerance 1e-10) (pdf/interp-species ()) (pdf/interp-method 2) (pdf/bounded-interp #f) (pdf/dynamic-fvar? #f) +(pdf/solve-variance-method 0) (pdf/solve-les-variance-eqn? #f) (pdf/warnings #t) (pdf/flamexpert #f) @@ -2318,8 +2977,13 @@ (pdf/solve? #t) (cdvar 2.) (cgvar 2.86) +(species/kinetics/spe-ck-eq? #f) (species/kinetics/use-ck-eq? #f) (flamelet-pdf/use-ceq? #f) +(pdf/ceq-include-thermo-spe ()) +(pdf/element-method 2) +(pdf/mixture-elements ("c" "h" "o" "n" "ar" "s")) +(pdf/replace-cpropep? #t) (pdf/equil-solver/ceq-explim 100.) (pdf/equil-solver/ceq? #t) (coal-3/wet-combustion? #t) @@ -2356,30 +3020,42 @@ (rfg/number-of-fourier-modes 100) (sngr/number-of-realizations 200) (sngr/number-of-fourier-modes 50) -(sound-var/residual-tolerance 1e-10) -(sound-var/iter-tolerance 1e-06) (sound-var/max-iter 10) -(sound-var/amg-stabilization 0) -(sound-var/amg-method 0) -(sound-var/cycle-type 0) -(sound-var/amg-beta 0.7) -(sound-var/amg-alpha 0.1) -(sound-var/explicit-relax 1.) -(sound-var/relax 1.) -(sound-var/default 0) -(sound-var/time-filter-source? #f) -(sound-var/space-filter-source? #f) -(sound-var/ramping-steps 0) -(sound-var/ramping-start 0) -(sound-var/newmark-alpha 0.05) -(sound-var/laplacian-long? #t) -(sound-var/ref-point (0. 0. 0.)) -(sound-var/fix-ref-point-value? #f) -(sound-var/subtract-mean-source? #f) -(sound-var/visc-factor 1.) -(sound-var/ntime-period 1) -(sound-var/model-eq 0) -(sound-var/solve? #t) +(acoustics-waveeq/emission-time-ini -1.) +(acoustics-waveeq/receivers ()) +(acoustics-waveeq/integral-surf-id (1000000)) +(acoustics-waveeq/remote-receivers? #f) +(acoustics-waveeq/sponge-type 0) +(acoustics-waveeq/sponge-layer-shapes ()) +(acoustics-waveeq/source-mask-shapes ()) +(acoustics-waveeq/sponge-layer-udf "none") +(acoustics-waveeq/source-mask-udf "none") +(acoustics-waveeq/residuals-timesteps-to-plot 100) +(acoustics-waveeq/iter-tolerance 1e-06) +(acoustics-waveeq/max-iter 10) +(acoustics-waveeq/amg-stabilization 0) +(acoustics-waveeq/amg-method 0) +(acoustics-waveeq/cycle-type 0) +(acoustics-waveeq/amg-beta 0.7) +(acoustics-waveeq/amg-alpha 0.1) +(acoustics-waveeq/explicit-relax 1.) +(acoustics-waveeq/relax 1.) +(acoustics-waveeq/default 0) +(acoustics-waveeq/time-filter-source? #t) +(acoustics-waveeq/space-filter-source? #t) +(acoustics-waveeq/ramping-steps 0) +(acoustics-waveeq/ramping-start 0) +(acoustics-waveeq/newmark-alpha 0.05) +(acoustics-waveeq/laplacian-long? #f) +(acoustics-waveeq/ref-point (0. 0. 0.)) +(acoustics-waveeq/fix-ref-point-value? #f) +(acoustics-waveeq/subtract-mean-source? #f) +(acoustics-waveeq/visc-base-level 0.1) +(acoustics-waveeq/visc-factor 1.) +(acoustics-waveeq/ntime-period 1) +(acoustics-waveeq/space-scheme 0) +(acoustics-waveeq/model-eq 4) +(acoustics-waveeq/solve? #t) (acoustics/convection-z-cosine 0.) (acoustics/convection-y-cosine 0.) (acoustics/convection-x-cosine 1.) @@ -2431,6 +3107,7 @@ (vv-stress/patch 1) (uu-stress/patch 1) (drsm/coupling-alt-average? #f) +(drsm/amg-continue-positive? #t) (drsm/amg-stabilization 0) (drsm/amg-method 0) (drsm/cycle-type 0) @@ -2457,7 +3134,7 @@ (retheta/residual-tolerance 0.0001) (retheta/iter-tolerance 0.05) (retheta/explicit-relax 1.) -(retheta/scheme 0) +(retheta/scheme 1) (retheta/relax 0.8) (intermit/default 1) (intermit/patch 1) @@ -2470,23 +3147,28 @@ (intermit/residual-tolerance 0.0001) (intermit/iter-tolerance 0.05) (intermit/explicit-relax 1.) -(intermit/scheme 0) +(intermit/scheme 1) (intermit/relax 0.8) (trans-intermit/max-limit 1.) (trans-retheta/min-limit 1e-07) (trans-intermit/min-limit 1e-07) -(omega/damping-lscale-method 0) -(omega/damping-activate? #f) -(omega/damping-cons 10.) -(omega/damping-deltan 0.001) +(epsilon/damping-formulation 0) +(omega/damping-formulation 0) +(turb-damp/smooth-grad? #f) +(turb-damp/vofg-cutoff 1e-10) +(turb-damp/lscale-method 0) +(turb-damp/factor 10.) +(turb-damp/deltan 0.001) +(turb-damp/activate? #f) (omega/default 1) (omega/patch 1) +(omega/amg-continue-positive? #t) (omega/amg-stabilization 0) (omega/amg-method 0) (omega/cycle-type 0) (omega/amg-beta 0.7) (omega/amg-alpha 0.1) -(omega/scheme 0) +(omega/scheme 1) (omega/max-iter 5) (omega/residual-tolerance 0.0001) (omega/iter-tolerance 0.05) @@ -2503,7 +3185,7 @@ (kl/cycle-type 0) (kl/amg-beta 0.7) (kl/amg-alpha 0.1) -(kl/scheme 0) +(kl/scheme 1) (kl/max-iter 5) (kl/residual-tolerance 0.0001) (kl/iter-tolerance 0.05) @@ -2542,6 +3224,7 @@ (v2f-k/min-limit 1e-07) (epsilon/default 1) (epsilon/patch 1) +(epsilon/amg-continue-positive? #t) (epsilon/amg-stabilization 0) (epsilon/amg-method 0) (epsilon/cycle-type 0) @@ -2556,12 +3239,13 @@ (epsilon/min-limit 9.999999999999999e-21) (k/default 1) (k/patch 1) +(k/amg-continue-positive? #t) (k/amg-stabilization 0) (k/amg-method 0) (k/cycle-type 0) (k/amg-beta 0.7) (k/amg-alpha 0.1) -(k/scheme 0) +(k/scheme 1) (k/max-iter 5) (k/residual-tolerance 0.0001) (k/iter-tolerance 0.05) @@ -2569,12 +3253,13 @@ (k/relax 0.8) (k/min-limit 1e-14) (ke/compr-effects-for-vof? #f) -(ke/buoyancy-production? #f) (ke/solve? #t) (ke/second-order/secondary-gradient? #t) (ke/secondary-gradient? #f) +(nut/linearize-negative-sources? #t) (nut/default 0.1) (nut/patch 0.1) +(nut/amg-continue-positive? #t) (nut/amg-stabilization 0) (nut/amg-method 0) (nut/cycle-type 0) @@ -2592,15 +3277,21 @@ (nut/solve? #t) (nut/second-order/secondary-gradient? #t) (nut/secondary-gradient? #f) -(kw/buoyancy-full-model? #f) -(kw/buoyancy-production-in-tke? #f) (turb-compress-mod? #f) -(curvature-correction-coefficient 1.) +(corner-flow-correction-ccorner 1.) +(corner-flow-correction? #f) +(curvature-correction-ccurv 1.) (curvature-correction? #f) (turb-viscosity/max-limit 100000.) (turb-viscosity/relax 1) +(turb/sbes-rans-flow-time-m1 0.001) +(turb/sbes-rans-flow-time 0.002) +(turb/sbes-rans-time-step 2) +(turb/sbes-rans-last-solve-step 2) +(turb/sbes-rans-update-interval 1) (turb/update-derivatives-after-turb-solve? #f) (turb/update-derivatives-before-turb-solve? #f) +(turb/report-negative-values? #t) (turb/hyd-dia-factor 0.07000000000000001) (w-swirl/amg-stabilization 0) (w-swirl/amg-method 0) @@ -2714,6 +3405,10 @@ (pb-qmom/zero-moms? #f) (pb-qmom/kv 0.523598776) (pb-qmom/ka 3.14159265) +(pb-qmom/zeta-min 0.) +(pb-qmom/weights-abscissas-algorithm 0) +(pb-qmom/moment-realizable-printout? #f) +(pb-qmom/moment-realizable? #f) (pb-qmom/default (0)) (pb-qmom/patch (0)) (pb-qmom/amg-stabilization (0)) @@ -2742,11 +3437,33 @@ (pb-disc/relax (1)) (pb-disc/solve? (#t)) (pb-disc/n-pb-disc 2) +(pb-disc/boiling/include-inhomo-rpi-boiling-sources? #f) +(pb-disc/boiling/scale-inhomo-boiling-sources? #f) +(pb-disc/boiling/force-pb-source-mass-transfer? #f) +(pb-disc/boiling/use-direct-cfx-sources? #t) +(pb/size-calculator-panel-created #f) +(pb/max-stable-droplet-taylor 0.) +(pb/max-stable-droplet-we 0.) +(pb/eo-10-limit 0.) +(pb/max-stable-bubb-capillary 0.) +(pb/cap-length 0.) +(pb/mid-size-bub-tomiyama 0.) +(pb/min-size-exp 0.) +(pb/size-calculator-mu-primary-value 0.0008899) +(pb/size-calculator-velocity-secondary-value 1.) +(pb/size-calculator-velocity-primary-value 2.) +(pb/size-calculator-density-secondary-value 1.185) +(pb/size-calculator-density-primary-value 997) +(pb/size-calculator-sigma-value 0.07199999999999999) +(pb/size-calculator-gravity 9.81) +(pb/compute-sources-at-top-of-time-step? #t) (pb/sg-pb-dqmom? #f) (pb/sg-pb-smm? #f) (pb/sg-pb-qmom? #f) (pb/sg-pb-disc? #f) (pb/bu-pdf-check? #f) +(pb/breakage-rate-factor 1.) +(pb/aggregation-rate-factor 1.) (pb/breakage-freq-rate 0) (pb/coalescence-rate 0) (pb/growth-rate 0) @@ -2756,7 +3473,11 @@ (mp/population-b? #f) (mp/compress-alt-bc-maxwell? #f) (mp/compress-alt-bc? #f) +(mp/lane-correction-iz #f) (mp/modify-drag? #f) +(density/user-specified-min-limit 1e-09) +(density/user-specified-min-limit? #f) +(density/explicit-relax 1.) (density/min-limit 1e-06) (density/scheme 1) (density/relax 1) @@ -2777,6 +3498,8 @@ (granular-temperature/relax 0.2) (granular-temperature/solve? #t) (granular/pde? #f) +(mp-packed-bed/zero-vel-vof 0) +(granular-pressure/frictional-pressure-max-limit 100000.) (granular-pressure/pp? #f) (pressure/mp-body-force-dissipation? #f) (sg-mp-noniterative-implicit-relaxation? #f) @@ -2798,16 +3521,26 @@ (mp/sg-mp-noniterative? #f) (mp/face-p-effect? #f) (mp/face-pressure-option 0) +(mp/generic-framework? #f) (mp/iad/post-iad? #f) (mp/iad/grad-ratio-limiter 1e-06) (mp/iad/ia-grad-symmetric? #f) (mp/adaptive-second-order #f) +(mp-les-type 0) (mp-rsm-type 0) (mp-sig-v 0.75) (mp-kec3 1.3) (mp-ke-type 0) +(drift/explicit-relax 0.5) (drift/relax 0.1) (drift/solve? #t) +(mp/mt/boil/advanced? #f) +(mp/mt/boil/expert? #f) +(mp/mt/boil/trans-func/coeff 20.) +(mp/mt/boil/cevap 1.) +(mp/mt/boil/urf-ht 0.8) +(mp/mt/sbm/qnuc/prop-avg/method 0) +(mp/mt/sbm/verbosity 0) (mp/face-aux-var-interpolation 3) (mp/boiling/thin-film-thickness 0.0001) (mp/boiling/vapor-low-limit 0.9) @@ -2874,6 +3607,7 @@ (mp/mt/species-linearization-factor 10.) (mp/mt/species-models 0) (mp/hydraulic-diameter 0.01) +(mp/evap-cond/tpc-before-tui-change-on? #f) (mp/evap-cond/old-evap-cond? #f) (mp/evap-cond/disp-intf-transfer 1.) (mp/evap-cond/cont-intf-transfer 1.) @@ -2884,7 +3618,7 @@ (mp/mt/energy/alt-form? #f) (mp/mt/user-defined-mass-source? #f) (mp/mt/evap-cond-models 0) -(mp/mt//area-influence-coeff 4.) +(mp/mt/area-influence-coeff 4.) (mp/mt/bubble-departure-frequency 100.) (mp/mt/nucleate-site-density 10000000.) (mp/mt/bubble-departure-diameter 1e-05) @@ -2920,20 +3654,35 @@ (cvt/model-new? #t) (cvt/rho-mixture? #f) (cvt/model-v5? #f) +(mass-tr/explicit-relax 1.) (cvt/relax-par 1.) (cvt/relax 1.) (mp/cvt/turb-coeff 0.39) (mp/cvt/thermal-coeff 1.) (mp/cvt/free-stream-temp 300.) +(mp/pressure/rc-anisotropic? #t) (mp/pressure-factor 1.) (mp/pvap/pressure-gradient? #t) (mp/pvap/pressure-treatment? #f) (mp/pvap/taylor-approximation? #f) (mp/pvap/thermal-factor? #f) (mp/pvap/turbulence-factor? #f) +(mp/vof-diff/cav/gamma-option 1) +(mp/vof-diff/generic/cav? #t) +(mp/vof-diff/gamma 0.01) +(mp/vof-diff/generic/mom-sources? #f) +(mp/vof-diff/generic/all-sources? #t) +(mp/vof-diff/generic/expansion-source? #f) +(mp/vof-diff/secondary-interaction? #t) +(mp/vof-diff/gamma-option 0) +(mp/vof-diff/linearize/grad-option 1) +(mp/vof-diff/linearize? #t) +(mp/vof-diff/specific-coeff? #t) +(mp/vof-diff/generic? #f) (mp/vof-diffusion-expansion-source? #t) (mp/turbulence-effect? #t) (mp/turb-diffusion? #f) +(mp/mt/cav/schnerr/f-evap 1.) (mp/mt/cav/schnerr/f-cond 0.2) (mp/mt/cav/schnerr/alt-form? #f) (mp/mt/cav/pvap-max-ratio 5.) @@ -2982,6 +3731,7 @@ (mp/relax 0.5) (mp/courant-number 0.25) (mp/scheme-type 1) +(mp/exp/every-iter/solve-flow-last? #t) (mp/every-iter? #f) (mp/phase-continuity/n-phase? #f) (mp/solve? #t) @@ -3003,6 +3753,7 @@ (mp/phases-dpm 0) (mp/phases 0) (mp/vm-urf 1.) +(mp/wall-drag-enhancement-fac 1000.) (mp/brucato-fac 6.5e-06) (mp/td/linearize-td-source? #f) (mp/td/simonin-model? #f) @@ -3025,6 +3776,7 @@ (mp/turb/sato-c-mu 0.6) (mp/turb/troshko-hassan-ctd 0.45) (mp/turb/troshko-hassan-cke 0.75) +(mp/lift/lift-shaver-podowski-correction? #f) (mp/lift/moraga-model-old? #f) (mp/lift/tomiyama-model-1998? #t) (mp/mfluid-drag-anisotropy-control? #f) @@ -3046,6 +3798,7 @@ (mp/mfluid-startup-niter 0) (mp/mfluid-face-vof-corr? #t) (mp/mfluid-scheme-type 0) +(mp/mfluid/pbndr-vof/enhanced? #f) (mp/mfluid/pbndr/normalize-fvof? #f) (mp/mfluid/pbndr/p-phase-reversal? #f) (vof/oc/wave/sample-size 200) @@ -3082,9 +3835,8 @@ (vof/surf-tens/expert? #f) (vof/surf-tens/csf/den-corr-option 0) (vof/surf-tens/css/avrg-option 0) -(vof/surf-tens/css-method? #f) -(vof/smoothing-factor 1.) -(vof/smoothing-num 1) +(vof/surf-tens/smooth/factor 1.) +(vof/surf-tens/smooth/num 2) (vof/node-based-gradients? #t) (vof/node-based-deriv? #t) (vof/pseudo/verbosity 0) @@ -3109,13 +3861,18 @@ (vof/coupled/courant-number 200.) (vof/coupled/diag-dominance? #f) (vof/coupled/subtract-vol-imbl? #f) -(vof/coupled/bf-mom/blending2? #f) -(vof/coupled/bf-mom/blending1? #f) +(vof/coupled/bf-mom/blend2? #f) +(vof/coupled/bf-mom/blend1? #f) (vof/coupled/bf-mom/niter 0) (vof/coupled/bf-mom-linearization? #t) (vof/coupled/mom-mass-imbl? #t) (euler-mp/coupled-form? #f) (vof/coupled-form? #f) +(vof/packed-bed/subtract-vol-imbl? #f) +(mp/turb-visc/damp/coeff 0.25) +(mp/turb-visc/damp/rho-r-max 2000.) +(mp/turb-visc/damp/n-max 2.) +(mp/turb-visc/damp? #f) (mp/visc-avg/harmonic? #f) (mp/visc-disp/expert? #f) (mp/visc-disp/disable-bndr-treatment? #f) @@ -3136,8 +3893,13 @@ (vof/geo-recon/generic-grad-method? #f) (vof/node-based-unlimited-grad? #t) (vof/node-based/new-framework? #f) -(vof/init/smooth-relax 0.25) -(vof/init/smooth? #f) +(mp/local-init/turb-vmin 0.01) +(mp/local-init/turb-viscosity-ratio 10.) +(mp/local-init/turb-intensity 0.05) +(mp/turb/local-init? #f) +(vof/smooth/relax 0.5) +(vof/smooth? #t) +(mp/sub-time-step/include-dflux? #t) (vof/sub-time-step/hybrid/factor 0.6) (vof/time-step/vel-factor 0.3) (vof/time-step/flux-avg-factor 0.5) @@ -3145,9 +3907,23 @@ (mfluid/courant-calculation-method 1) (vof/courant-calculation-method 3) (vof/case-check/verbosity 0) +(vof/anti-diffusion/dynamic/exponent 1.5) +(vof/anti-diffusion/dynamic/method 1) +(vof/anti-diffusion/gradient/method 0) +(vof/anti-diffusion/dynamic? #f) +(vof/anti-diffusion/enhanced/linearization? #f) +(vof/anti-diffusion/enhanced? #f) (vof/anti-diffusion/expansion? #t) (vof/anti-diffusion/factor 0.75) (vof/anti-diffusion? #f) +(mp/flotsam/node-avg/cutoff 0.001) +(mp/flotsam-indicator/method 1) +(mp/flotsam/filter? #f) +(mp/explicit/relative-motion? #t) +(vof/gradient/new-framework? #t) +(mp/explicit/new-framework? #f) +(mp/explicit/mass-imb/init? #t) +(mp/implicit-vof-low-limit 0.) (vof/implicit-low-limit 1e-06) (vof/explicit-low-limit 1e-06) (vof/remove-small-bubbles? #f) @@ -3158,9 +3934,54 @@ (vof/redistribute-lost-volume? #t) (vof/use-polyhedra? #t) (vof/improved-wall-treatment? #f) -(vof/courant-based-time-step? #f) (vof/global-courant-number-limit 250.) (vof/global-courant-number 2.) +(mp/reg-trans/gentop/clustering-reconstructed-gradients? #t) +(mp/reg-trans/gentop/surface-force-off-non-gentop? #t) +(mp/reg-trans/gentop/clustering-coeff 1.) +(mp/reg-trans/gentop/clustering-force-active? #t) +(mp/reg-trans/gentop/sp-cc ()) +(mp/reg-trans/gentop/sp-trm 0) +(mp/reg-trans/gentop/on? #f) +(mp/reg-trans/aiad/entrained-phase-formation-coefficient 0.02) +(mp/reg-trans/aiad/subgrid-wave-k-on? #f) +(mp/reg-trans/aiad/sfc-coeff-cont-pair 0) +(mp/reg-trans/aiad/bubb-drag 0.44) +(mp/reg-trans/aiad/limit-vf-bubb 0.3) +(mp/reg-trans/aiad/coeff-bubb 50.) +(mp/reg-trans/aiad/bubb-diam 0.001) +(mp/reg-trans/aiad/drop-drag 0.44) +(mp/reg-trans/aiad/limit-vf-drop 0.3) +(mp/reg-trans/aiad/coeff-drop 50.) +(mp/reg-trans/aiad/drop-diam 0.001) +(mp/reg-trans/aiad/sp-ent 0) +(mp/reg-trans/aiad/sp-cont 0) +(mp/reg-trans/aiad/pp-cont 0) +(mp/reg-trans/aiad/on? #f) +(mp/filtered-model/term-vel 0.23) +(mp/filtered-model/set-term-vel? #f) +(mp/filtered-model/solid-press-md-select 0) +(mp/filtered-model/strain-rate-limit 100.) +(mp/filtered-model/drag-on? #f) +(mp/filtered-model/min-filter-size 0.02) +(velocity-limiting/verbosity? #f) +(velocity-limiting/option 0) +(velocity-limiting/strength 10.) +(velocity-limiting/magnitude 5000.) +(velocity-limiting/phase-based? #f) +(velocity-limiting/enable? #f) +(mp/stable-vof/option 1) +(mp/stabilization/advanced2/pseudo-transient? #t) +(mp/stabilization/advanced2/blended-discr? #t) +(mp/stabilization/advanced2/option 0) +(mp/stabilization/advanced? #f) +(mp/stabilization/basic? #f) +(mp/hmt/mt-latent-verbose 0) +(mp/hmt/mt-s-lin-dt-min 1.) +(mp/hmt/mt-s-lin-ia-sym? #f) +(mp/hmt/mt-tpc-advance? #f) +(mp/hmt/mt-thermal-spec-seed? #t) +(mp/hmt/add-ht-global? #t) (mp/hmt/particle-mode? #t) (mp/hmt/area-density/vof-min 1e-06) (mp/vof-min 1e-15) @@ -3176,15 +3997,17 @@ (simplec/skew-iter 0) (piso/skew-iter 1) (flow/scheme 20) +(udm/registered-models ()) (udm/n-node-udm 1) (udm/n-udm 1) (udm/patch (0)) -(hyb-init/alternate-automatic-initialization? #f) +(hyb-init/unscaled-res? #f) +(hyb-init/legacy-hybrid-initialization? #f) +(hyb-init/press-fact 0.01) +(hyb-init/alternate-treatment-for-pi? #f) (hyb-init/enabled-for-unsteady? #t) (hyb-init/enabled-for-mphase? #f) -(hyb-init/press-fact 0.01) (hyb-init/patch-ads? #f) -(hyb-init/unscaled-res? #f) (hyb-init/mach-limit 0.5) (hyb-init/aero-method 0) (hyb-init/constant-vel-vector? #f) @@ -3212,6 +4035,7 @@ (hyb-init/explicit-relax (1. 1.)) (hyb-init/relax (1. 1.)) (hyb-init/solve? (#t #t)) +(uds/registered-models ()) (uds/secondary-gradient? #t) (uds/skew-grid? #f) (uds/variables ()) @@ -3268,6 +4092,17 @@ (reacting-channel/variables ()) (reacting-channel/num-wall-groups 1) (reacting-channel/enabled? #f) +(species/tfm/eff-num-smooths 0) +(species/tfm/eff-flags (#f #f #f)) +(species/tfm/beta 0.33) +(species/tfm/lt-integral 0.02) +(species/tfm/eff-real-params (10. 0.28)) +(species/tfm/n-smooth-vel 3) +(species/tfm/sensor-num-smooths 0) +(species/tfm/sensor-beta 50) +(species/tfm/sensor-rxn-index 0) +(species/tfm/sensor-calc-method 1) +(species/tfm/closure-method 2) (species/tfm/omega-rxn-index 0) (species/tfm/omega-calc-method 0) (species/tfm-rans? #f) @@ -3421,6 +4256,76 @@ (species/equil-isat/analytic-sens? #f) (species/equil-chem-seg-dt? #f) (species/chemical-equilibrium? #f) +(lithium/activity-function ()) +(lithium/tplus-function ()) +(lithium/anode-eq-p ()) +(lithium/cathode-eq-p ()) +(lithium/cathode-current 0) +(lithium/anode-current 0) +(lithium/soc 0) +(lithium/capacity 0) +(lithium/cathode-cs-stoi-100 10.56) +(lithium/anode-cs-stoi-100 10.88) +(lithium/cathode-cs-stoi-0 22.37) +(lithium/anode-cs-stoi-0 2.029) +(lithium/electrolyte-c-init 1.2) +(lithium/anode-c-init 10.88) +(lithium/cathode-c-init 10.56) +(lithium/anode-cmax 16.1) +(lithium/cathode-cmax 23.9) +(lithium/linearized-bv-rate? #f) +(lithium/anode-alpha-c 0.5) +(lithium/cathode-alpha-c 0.5) +(lithium/anode-alpha-a 0.5) +(lithium/cathode-alpha-a 0.5) +(lithium/anode-alpha3 0.5) +(lithium/cathode-alpha3 0.5) +(lithium/anode-alpha2 0.5) +(lithium/cathode-alpha2 0.5) +(lithium/anode-alpha1 0.5) +(lithium/cathode-alpha1 0.5) +(lithium/anode-i0 4.52e-08) +(lithium/cathode-i0 2.07e-08) +(lithium/cathode-wall-list ()) +(lithium/anode-wall-list ()) +(lithium/negative-zone-list ()) +(lithium/electrolyte-zone-list ()) +(lithium/positive-zone-list ()) +(lithium/echem-heat? #f) +(lithium/expert? #f) +(lithium/skew-grid? #t) +(lithium/hsrc-urf 1.) +(lithium/explicit-urf 1.) +(lithium-faradaic/pseudo-relax 0.1) +(lithium-faradaic/relax 0.1) +(lithium/secondary-bc-gradient? #t) +(lithium/secondary-gradient? #t) +(lithium/long-diffusion? #t) +(lithium/pseudo-time-scale-factor 1.) +(lithium/pseudo-implicit-relax 1.) +(lithium/pseudo-specific? #f) +(lithium/pseudo-relax 0.75) +(lithium/pseudo-cycle-type 3) +(lithium/explicit-relax 1.) +(lithium/residual-tolerance 1e-06) +(lithium/iter-tolerance 0.05) +(lithium/max-iter 5) +(lithium/default 0.) +(lithium/patch 0.) +(lithium/amg-stabilization 0) +(lithium/amg-method 0) +(lithium/cycle-type 3) +(lithium/amg-beta 0.7) +(lithium/amg-alpha 0.1) +(lithium/scheme 1) +(lithium/solve? #t) +(lithium/relax 1.) +(lithium/boundary-flux-relax 1.) +(lithium/explicit-potential-coupling? #t) +(potential/debug-info? #f) +(potential/faradaic-smooth-number 0) +(potential/li-migration-source? #t) +(potential/allow-multiphase-model? #t) (potential/expert? #f) (potential/correction-method 0) (potential/corrosion-source-in-continuity? #f) @@ -3433,6 +4338,8 @@ (potential/explicit-urf 1.) (potential-faradaic/pseudo-relax 0.1) (potential-faradaic/relax 0.1) +(potential/secondary-bc-gradient? #t) +(potential/secondary-gradient? #t) (potential/long-diffusion? #t) (potential/pseudo-time-scale-factor 1.) (potential/pseudo-implicit-relax 1.) @@ -3453,6 +4360,39 @@ (potential/scheme 1) (potential/solve? #t) (potential/relax 1.) +(fmu/localvariable-input-value ()) +(fmu/localvariable-input ()) +(fmu/selected-local-obj ()) +(fmu/selected-localvariable ()) +(fmu/available-localvariable ()) +(fmu/selected-para-obj ()) +(fmu/selected-parameters ()) +(fmu/available-parameters ()) +(fmu/localvariables ()) +(fmu/parameters ()) +(fmu/serializedstatesize 0) +(fmu/input-hook? #f) +(fmu/output-hook ()) +(fmu/input-hook ()) +(fmu/output-value ()) +(fmu/input-value ()) +(fmu/output-unit ()) +(fmu/input-unit ()) +(fmu/local-name ()) +(fmu/para-name ()) +(fmu/output-name ()) +(fmu/input-name ()) +(fmu/num-local 0) +(fmu/num-para 0) +(fmu/num-output 0) +(fmu/num-input 0) +(fmu/restart? #f) +(fmu/instantiate? #f) +(fmu/file-available #f) +(fmu/linked? #f) +(fmu/enable? #f) +(fmu/filename "") +(species/encrypted-io-hdf5? #f) (species/unselected-monitored-sp-list ()) (species/unselected-boundary-sp-list ()) (species/sundials-adaptive-preconditioner? #f) @@ -3467,15 +4407,20 @@ (species/use-chemkin-dac/tol 0.001) (species/use-chemkin-dac? #f) (species/use-chemkin-dcc/verbosity? #f) +(species/use-chemkin-dcc/react-threshold 1e-09) +(species/use-chemkin-dcc/min-cluster 0) +(species/use-chemkin-dcc/max-cluster 10) (species/use-chemkin-dcc/delta-phi 0.05) (species/use-chemkin-dcc/delta-temp 10.) -(species/use-chemkin-dcc/num-features 2) (species/use-chemkin-dcc? #f) (species/enable-dcc-ui? #t) (species/use-chemkin-ode-solver/rtol 1e-05) (species/use-chemkin-ode-solver/atol 1e-10) (species/use-chemkin-ode-solver? #f) (enable-beta-finite-rate-chem? #f) +(species/chemkin-import/surfacethermal-in-mechanismfile? #f) +(species/chemkin-import/transport-in-mechanismfile? #f) +(species/chemkin-import/gasthermal-in-mechanismfile? #f) (species/chemkin-import/store-files? #t) (species/chemkin-import/scheme-verbosity? #f) (species/chemkin-import/reset-mixture-properties? #f) @@ -3498,6 +4443,7 @@ (species/edc-apmax-fac 0.5) (species/edc-reactor-type 1) (species/edc-niter 1) +(species/edc-gamma-limit 0.7548776659999999) (species/edc-c2 0.40825) (species/edc-c1 2.1377) (species/edc? #f) @@ -3505,6 +4451,10 @@ (species/multicomponent-diffusion? #f) (species/inlet-diffusion? #f) (species/surface-heat-react? #t) +(species/multiphase-stiff-chemistry? #f) +(species/stiff-solver-domain-id (-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(species/stiff-domain-name "") +(species/stiff-domain-id -1) (species/sct 0.7) (reactions/relax 1.) (reactions/solve? #t) @@ -3539,6 +4489,7 @@ (enthalpy/solid/secondary-gradient? #t) (enthalpy/diag-dom-mode 0) (enthalpy/diag-dom-urf 0.95) +(temperature/damped-noise-verbosity? #f) (enthalpy/damped-noise-verbosity? #f) (enthalpy/damped-noise-marking-udm? #f) (enthalpy/damped-noise-marking 0) @@ -3566,6 +4517,8 @@ (enthalpy/scheme 1) (enthalpy/relax 1.) (enthalpy/solve? #t) +(solar/reset-irrad-values? #f) +(solar/support-multilevel-mesh? #t) (solar/thread-number-fixed 1) (solar/thread-number-method 0) (solar/r150-default? #t) @@ -3612,6 +4565,8 @@ (sol/north_z 0.) (sol/north_y 1.) (sol/north_x 0.) +(solar/apply-full-irrad? #f) +(solar/update-solve? #f) (solar/solve? #f) (disco/solar? #f) (wsggm/emiss-table/method 0) @@ -3624,6 +4579,7 @@ (hybrid/do-rosseland? #f) (disco/amg-tolerance 1e-06) (disco/n-gray-gas ()) +(disco/band-names ()) (disco/bands ()) (disco/inner-iterations 2) (disco/reduced-storage? #f) @@ -3730,9 +4686,25 @@ (morpher/bernstein-new-eval? #t) (morpher/untested-features? #f) (morpher/on? #f) +(fensapice/ice/disp? #f) +(fensapice/ice/swimsol? #f) +(fensapice/drop/vapor? #f) +(fensapice/drop/crystal? #f) +(fensapice/drop/droplet? #f) +(fensapice/flow/soln-eid? #f) +(fensapice/flow/soln-shear? #f) +(fensapice/flow/soln-turb? #f) +(fensapice/flow/soln-hflux? #f) +(fensapice/flow/soln-fluent? #f) +(fensapice/flow/soln? #f) +(fensapice/flow/on? #f) +(fensapice/on? #f) (adjoint/solution-exists? #f) (adjoint/on? #f) +(s2s/clusters-per-chunk 100) (s2s/binary-file? #t) +(s2s/nci-aggl? #f) +(s2s/ipc-method? #f) (s2s/file-io? #f) (s2s/new-encapsulation? #t) (s2s/max-inner-encap-iter 25) @@ -3784,6 +4756,7 @@ (s2s/n-iter 10) (s2s/nc-r145? #f) (s2s/nc-poly-new? #t) +(s2s/skip-encapsulation? #t) (s2s/enable-encapsulation? #f) (fan3d/verbosity 0) (fan3d/fancurve-file ()) @@ -3802,8 +4775,14 @@ (agglomerate/surface/feature-angle 30) (agglomerate/surface/pairwise? #t) (agglomerate/surface? #f) +(montecarlo/multiphase/mixture-temp-max-iter 100) +(montecarlo/load-balancing-option 1) +(montecarlo/ext-diff-src? #t) +(montecarlo/mc-cpvc 1) +(montecarlo/tref 0.) (montecarlo/mapped-interface? #f) (montecarlo/agglomeration-level 1) +(montecarlo/old-agglomeration? #f) (montecarlo/agglomerate? #f) (montecarlo/work-unit 200) (montecarlo/diag-level 0) @@ -3812,12 +4791,14 @@ (montecarlo/mms-size 1.) (montecarlo/histories 100000) (montecarlo/n-iter 10) +(rad/apply-mphase-surface-ref-factor? #f) (rad/enable-netm? #f) (rad/n-time-update 1) (enable-beta-rad-features? #f) (diffusivity/ortho-sym-linearization-factor 0.1) (diffusivity/ortho-sym-linearization? #t) (energy/porous-long-diffusion? #f) +(temperature/solid-patankar? #t) (temperature/enable-potential-energy? #f) (temperature/enable-caf-gui? #f) (temperature/2nd-source-bc-relax 0.5) @@ -3841,6 +4822,10 @@ (temperature/scheme 1) (temperature/relax 1.) (temperature/solve? #t) +(energy/swip/filtered? #t) +(energy/swip/limited? #t) +(energy/swip/c2 1e-05) +(energy/swip/c1 -20.) (energy/freeze-solid-temp? #f) (energy/inertial-force-work? #f) (energy/inlet-diffusion? #t) @@ -3879,15 +4864,35 @@ (roe/time/include-kp-u? #t) (roe/include-kp-u? #f) (roe/fp-correct? #t) -(sedm? #f) +(pbs/density-derivative 0) (pbs/fsm/iterative? #f) (pbs/all-fluxes? #f) (pbs/p-recon 1) +(pbs/flux-auto-select? #f) +(pbs/flux-index 0) (pbs/flux-type 0) +(impedance/map ()) +(impedance/verbosity 0) +(impedance/phase-mode "zero") +(impedance/fn/model "") +(impedance/fn/data "") +(impedance/fn/absorption "") +(impedance/fn/reflection "") +(impedance/fn/impedance "") +(impedance/input/type "impedance") +(impedance/residue-tolerance 1e-06) +(impedance/tolerance 1e-06) +(impedance/niter 20) +(momentum/pbns/delta-form? #t) +(pressure/face-interpolation-second-order-scheme-t 0) +(pressure/reference-choice 2) +(pressure/reference/method 1) +(pressure/limit-pc-grad? #f) +(pressure/body-force-weighted/new? #f) (pressure/fixed-velocity-zero-pressure? #t) -(pressure/outflow-implicit-rc-pt? #t) +(pressure/presto/limit-pcorgrad? #f) (pressure/presto/limit-pgrad? #f) -(pressure/flow-init-type -1) +(pressure/flow-init-type 0) (pressure/presto-at-startup? #t) (pressure/mdm-unsteady-rc? #f) (pressure/unsteady-rc-sc? #f) @@ -3895,40 +4900,29 @@ (pressure/conv-relax? #f) (pressure/unsteady-rc 1) (pressure/mp-dissipation? #t) -(pressure/rc-dissipation-new? #t) +(pressure/mp/dissipation? #t) +(pressure/porous-zone-presto-dissipation? #t) (pressure/dissipation? #f) (pressure/frozen-flux? #f) (pressure/presto-unsteady 1) (pressure/unsteady? #t) -(pressure/rc-anisotropic? #t) -(pressure/isotrop-rc? #f) +(pressure/ho-rc1-on-porous? #f) (pressure/ho-rc-disable? #f) -(pressure/ho-rc 2) +(pressure/ho-rc-scheme 1) (pressure/presto-low-order? #f) (pressure/extrapolate/face-p-based? #f) (pressure/extrapolate-inlet/presto-on-vinlet? #t) (pressure/extrapolate-inlet? #t) (pressure/extrapolate-all? #f) (pressure/mp-4th-order-dissipation 1) -(mp/body-force-face-p? #f) +(body-force-includes-axi-visc-term? #t) +(mp/pcor-coef-sym? #t) +(mp/body-force-face-p 0) (pressure/ap-weighted-face-pressure-1st 0) (pressure/ap-weighted-face-pressure-piso 0) (pressure/ap-weighted-face-pressure 0) -(pressure/cpl-omega-vof-drift 1.) -(pressure/cpl-omega-p-drift 1.) -(pressure/cpl-omega-u-drift 1.) -(pressure/cpl-omega-vofvof 1.) -(pressure/cpl-omega-vofv 1.) -(pressure/cpl-omega-vofp 1.) -(pressure/cpl-omega-vvof 1.) -(pressure/cpl-omega-pvof 1.) (pressure/cpl-omega-flux 1.) (pressure/cpl-courant-number 200.) -(pressure/cpl-omega-vv 1.) -(pressure/cpl-omega-pp 1.) -(pressure/cpl-omega-pv 1.) -(pressure/cpl-omega-vp 1.) -(pressure/omega-p-conv-mp 1.) (pressure/cpl-expl-omega-p 0.75) (pressure/cpl-expl-omega-v 0.75) (pressure/coupled-vof-delta-form? #t) @@ -3944,7 +4938,6 @@ (pressure-coupled/mom/explicit-relax 0.75) (pressure-coupled/courant-number 200.) (pressure-coupled/restart? #f) -(pressure-coupled/omega 1.) (pressure-coupled/amg-stabilization 0) (pressure-coupled/amg-method 0) (pressure-coupled/cycle-type 3) @@ -3952,7 +4945,6 @@ (pressure-coupled/amg-alpha 0.1) (pressure/coupled-nonlinear? #f) (pressure/coupled-pressure-delta-form? #t) -(pressure/coupled-velocity-delta-form? #t) (pressure/coupled-dissipation 0) (pressure/coupled-available? #f) (pressure/max-iter 10) @@ -3977,9 +4969,16 @@ (pressure/explicit-relax 1) (pressure/relax 0.3) (pressure/scheme 12) +(time/bso/primitive/pb/first-order? #f) +(time/bso/primitive/react/first-order? #f) +(time/bso/primitive/energy/first-order? #f) +(time/bso/primitive/first-order? #f) +(time/second-order/limit-gradient? #f) (time/second-order/bounded/include-react-vars? #f) (time/second-order/mass-imbalance-treatment? #t) (time/second-order/bounded/vof-linearized? #t) +(time/second-order/bounded/energy-option 1) +(time/second-order/bounded/pb-option 1) (time/second-order/bounded/react-option 2) (time/second-order/bounded/turb-option 2) (time/second-order/bounded/vof-option 2) @@ -3989,10 +4988,23 @@ (time/second-order/bounded/generic? #f) (2nd-order-time/blend-factor 1.5) (2nd-order-time/bounded? #t) -(time/second-order-verbosity 0) +(time/adaptive/mp/verbosity? #f) +(time/adaptive/mp/minimization-method 0) +(time/adaptive/mp/advective/blending-factor 0.5) +(time/adaptive/mp-physical/acoustic? #t) +(time/adaptive/mp-physical/gravity? #t) +(time/adaptive/mp-physical/surf-tens? #t) +(time/adaptive/mp-physical/viscous? #f) +(time/adaptive/mp-physical-scales? #f) +(time/adaptive/mp-interfacial? #t) +(time/adaptive/mesh-courant-number 1.) +(time/adaptive/mesh-motion-constraint? #f) +(time/previous-formulation/fixed? #t) (time/enhanced-second-order-in-time? #f) (time/enhanced-scheme-with-dbns? #f) -(time/parameters/hybrid-coefficient 1.) +(time/second-order-verbosity 0) +(time/parameters/hybrid-coefficient 0) +(time/parameters/hybrid-scheme-startup? #t) (time/parameters/hybrid-scheme 0) (time/parameters/previous-scheme 0) (time/parameters/current-scheme 0) @@ -4000,6 +5012,29 @@ (time/parameters/dt-ratio 1.) (time/parameters/dt-ratio-type 0) (time/parameters/grid-flux-method 0) +(time/adaptive/max-fixed-timesteps 1) +(time/adaptive/update-intervals 1) +(time/adaptive/dt-factor-max 2.) +(time/adaptive/dt-factor-min 0.5) +(time/adaptive/dt-max 1.) +(time/adaptive/dt-min 1e-08) +(time/adaptive/dt-initial 1e-06) +(time/adaptive/desired-cfl 1.) +(time/adaptive/controlled? #t) +(time/adaptive/cfl-type 4) +(time/adaptive/dt-scheme 0) +(time/adaptive/dt-method 0) +(time/adaptive/expert? #f) +(time/adaptive/dt-modes-overwrited? #t) +(time/adaptive/dt-timestep-based? #t) +(time/adaptive/dt-max-status -100000000.) +(time/adaptive/dt-min-status 100000000.) +(time/incremental-time 999.998) +(time/extrapolation-scheme 4) +(time/discretization-method 0) +(time/total-timesteps 3) +(time/duration-option 0) +(time/solution-status? #f) (z-velocity/default 0) (y-velocity/default 0) (x-velocity/default 0) @@ -4040,18 +5075,48 @@ (mom/relax 0.7) (explicit-relaxation? #f) (implicit-relaxation? #t) -(nita/hybrid/option 0) +(spectral/bfc/fcdata-list (0)) +(spectral/bfc/bfreq-list (0.)) +(spectral/bfc/tstep (0 0)) +(spectral/bfc/complete (#f #f #f)) +(spectral/bfc/sigma 0.) +(spectral/bfc/relax 0.7) +(spectral/bfc/blade-flutter? #f) +(spectral/bfc/incl-extra? #f) +(spectral/bfc/all-walls? #t) +(spectral/bfc/all-cells? #t) +(spectral/fc/fcdata-list (0)) +(spectral/fc/bfreq-list (0.)) +(spectral/fc/tstep (0 0)) +(spectral/fc/complete (#f #f #f)) +(spectral/fc/sigma 0.) +(spectral/fc/relax 0.7) +(spectral/fc/blade-flutter? #f) +(spectral/fc/incl-extra? #f) +(spectral/fc/first-4-harms? #t) +(enable-fourier-coefficients? #f) +(nita/flux/extrapolate? #f) +(nita/single-phase/hybrid/option 0) +(nita/mp/hybrid/option 1) +(nita/hybrid/event/vel-limit 1000.) +(nita/hybrid/event/cfl-max 25.) +(nita/hybrid/event/cfl-type 0) +(nita/hybrid/event/outer-iter 5) +(nita/hybrid/instability-detector? #f) +(nita/hybrid/start-up/outer-iter 5) +(nita/hybrid/start-up/time-steps 5) (nita/hybrid? #f) -(nita/mom/urf-imp 1.) +(nita/mom/implicit-relax 0.95) (nita/verbosity 0) +(nita/aggressive? #f) (nita/piso/coupling? #f) +(nita/residual-tolerance/iter 1) (nita/outer-iter 1) (noniterative-max-iter 1) (noniterative-time-advance? #f) (old-unsteady-flux? #t) (solve-absolute-velocities? #t) (correct-velocity? #t) -(flow/skip-first-iter? #f) (flow/solve? #t) (local-residual/delphi/phase-specific? #t) (local-residual/ap/eps-diff 1e-12) @@ -4059,29 +5124,30 @@ (local-residual/delphi/eps 1e-30) (local-residual/mode 3) (local-residual/scale/method 0) +(residuals/consistent-scaling? #t) +(residuals/continuity-scaling-method 0) +(residuals/enhanced-continuity-residual? #f) +(residuals/normalize? #f) +(residuals/compute-local? #f) +(residuals/scale? #t) +(residuals/local? #f) (residuals/need-caching? #f) (residuals/wb-enforce-min-niter? #t) (residuals/wb-iteration-count 0) (residuals/wb-min-number-of-iterations 2) -(residuals/consistent-scaling? #t) -(residuals/compute-local? #f) (residuals/unrelax? #f) -(residuals/local? #f) (residuals/resid-buffer-interval 1) (residuals/convergence-criterion-type 0) -(residuals/scale? #t) -(residuals/normalize? #f) (residuals/debug? #f) (residuals/n-display 1000) (residuals/n-save 1000) -(residuals/window 0) (residuals/plot? #t) (residuals/print? #t) (residuals/n-maximize-norms 5) -(residuals/settings #f) +(residuals/settings ((continuity #t 0. #t 0.001 1. 0.05) (x-velocity #t 0. #t 0.001 0.01825149523111092 0.05) (y-velocity #t 0. #t 0.001 0.0109909682928544 0.05))) (patch/cpld/bc-zone? #t) (patch/m1-m2? #t) -(patch/vof? #f) +(patch/vof/recon? #t) (patch-relative? #t) (init-relative? #f) (profile/morphing? #f) @@ -4104,6 +5170,20 @@ (user-real-gas? #f) (real-gas-multi-component? #f) (real-gas? #f) +(structure/nonconformal/area-tolerance 1e-05) +(structure/nonconformal/normal-tolerance 0.01) +(structure/enhanced-strain? #f) +(structure/thermal-effects? #f) +(structure/damping-gamma 0.) +(structure/enable-rotation-bf? #t) +(structure/enable-gravity-bf? #t) +(structure/viscous-fsi-force? #f) +(structure/explicit-fsi-force? #f) +(structure/include-pop? #f) +(structure/solve? #t) +(structure/thickness 1.) +(udf/wall-nodal-force-fcn "none") +(udf/wall-nodal-disp-fcn "none") (udf/use-auto-recompile? #t) (udf/reacting-channel-bc-fcn ("none")) (udf/reacting-channel-solver-fcn "none") @@ -4127,6 +5207,9 @@ (udf/viscous/kw-geko-cmix-fcn "compute-from-csep") (udf/viscous/kw-geko-cnw-fcn "constant") (udf/viscous/kw-geko-csep-fcn "constant") +(udf/viscous/corner-flow-correction-ccorner-fcn "constant") +(udf/viscous/curvature-correction-ccurv-fcn "constant") +(udf/viscous/trans-alg-rec-cor-fcn "built-in") (udf/viscous/trans-geomrgh-fcn "constant") (udf/viscous/trans-retheta-t-fcn "none") (udf/viscous/trans-retheta-c-fcn "none") @@ -4140,9 +5223,12 @@ (udf/viscous/prt-k-fcn "none") (udf/viscous/mu-t-fcn "none") (udf/cphi-fcn "none") +(udf/perforated-cd-fcn "none") +(udf/edc-mdot-fcn "none") (udf/edc-scales-fcn "none") (udf/chem-step-fcn "none") (udf/cav-rate-fcn "none") +(udf/soot-mom-rates-fcn "none") (udf/soot-mass-rates-fcn "none") (udf/soot-nucleation-rates-fcn "none") (udf/soot-oxidation-rate-fcn "none") @@ -4165,6 +5251,7 @@ (udf/film-regime-fcn "none") (udf/impingement-fcn "none") (udf/dpm/n-reals 0) +(udf/dpm/interpolation-fcn "none") (udf/dpm/timestep-fcn "none") (udf/dpm/spray-collide-fcn "none") (udf/dpm/scalar-fcn "none") @@ -4181,6 +5268,22 @@ (udf/ecfm-src-fcn "none") (udf/heat-flux-fcn "none") (udf/trb-prmx-src-fcn "none") +(udf/battery/cluster-fcn "none") +(udf/battery/newman-prop-porn-fcn "none") +(udf/battery/newman-prop-porp-fcn "none") +(udf/battery/newman-prop-dlnfdlnce-fcn "none") +(udf/battery/newman-prop-tplus-fcn "none") +(udf/battery/newman-prop-dsp-fcn "none") +(udf/battery/newman-prop-dsn-fcn "none") +(udf/battery/newman-prop-de-fcn "none") +(udf/battery/newman-prop-kappa-fcn "none") +(udf/battery/newman-postprocessing-fcn "none") +(udf/battery/newman-bv-rate-fcn "none") +(udf/battery/newman-ocp-fcn "none") +(udf/battery/entropic-heat-fcn "none") +(udf/battery/echem-model-fcn "none") +(udf/battery/parameter-ecm-fcn "none") +(udf/battery/parameter-ntgk-fcn "none") (udf/ec-rate-fcn "none") (udf/pr-rate-fcn "none") (udf/sr-rate-fcn "none") @@ -4201,11 +5304,41 @@ (udf/cpp-command "cpp") (udf/use-contrib-cpp? #f) (udf/filename "") +(udf/use-clang-if-vc-not-available? #t) (user-fan/program-name "fan-model") (user-fan/update-interval 10) (user-fan/profile-points 20) (user-fan/fan-zones ()) (title "") +(mesh/garbage-collect/optimized-comm? #t) +(pmn/mark-once-per-dt? #t) +(pmn/limits-offset 0.01) +(pmn/cfl-jump 5.) +(pmn/cfl-limit 10.) +(pmn/velocity-limit 500.) +(pmn/mark-cfl-jump? #f) +(pmn/mark-cfl-limit? #f) +(pmn/mark-vel-limit? #f) +(pmn/mark-primary-limits? #t) +(pmn/solution-based-treatment? #f) +(show-solution-based-pmn? #f) +(mesh/bad/modified-cell-centroid/verbosity 0) +(mesh/bad/modified-cell-centroid/use-old-centroid? #f) +(mesh/bad/modified-cell-centroid/quality-change-threshold 0.1) +(mesh/bad/modified-cell-centroid/orthogonal-quality-threshold 0.5) +(mesh/bad/modified-cell-centroid/exponent-p 1.) +(mesh/bad/modified-cell-centroid/max-area-normalization? #f) +(mesh/bad/modified-cell-centroid? #f) +(mesh/bad/combined-quality-imbalance/quality-no-mass-imbalance? #f) +(mesh/bad/combined-quality-imbalance/mass-imbalance-no-quality? #f) +(mesh/bad/combined-quality-imbalance/marking-frequency 5) +(mesh/bad/combined-quality-imbalance/verbosity 0) +(mesh/bad/combined-quality-imbalance/threshold 0.2) +(mesh/bad/combined-quality-imbalance/eps 1e-10) +(mesh/bad/combined-quality-imbalance/available? #f) +(mesh/bad/tmp-enhanced-pmn? #f) +(mesh/bad/tmp-cfl-limit 1.) +(mesh/bad/tmp-limit-cfl? #f) (mesh/dual-cell-zones ()) (mesh/bad/repair-sltn/use-bndry-info? #t) (mesh/bad/repair-sltn/disable-cont-eqn? #t) @@ -4218,12 +5351,17 @@ (mesh/bad/repair-grad/hinv/limit-h-norm? #f) (mesh/bad/repair-grad/hinv/use-viscous-h-for-rg? #f) (mesh/bad/repair-grad/hinv/skip-rg? #f) -(mesh/bad/repair-grad/repair-unlimited? #f) (mesh/bad/repair/vof/option 1) (mesh/bad/repair/vof-specific? #t) (mesh/bad/vof/repair-grad-avg? #f) +(mesh/bad/repair-grad-flag-based? #t) +(mesh/bad/repair-grad/repair-unlimited? #f) (mesh/bad/repair-grad/tmp-dont-repair-viscous? #f) (mesh/bad/repair-grad-mode 2) +(mesh/bad/add_pmn_neighbors? #t) +(mesh/bad/boundary-layer-optimized? #t) +(mesh/bad/grad-quality/threshold 0.2) +(mesh/bad/grad-quality/sigmoid-beta-coefficient 5.) (mesh/bad/grad-quality/available? #f) (mesh/bad/verbosity 0) (mesh/bad/smoothing/encapsulate? #f) @@ -4237,12 +5375,14 @@ (mesh/bad/min-orthogonal-quality 0.05) (mesh/bad/quality/method 0) (mesh/bad/enable-quality-based-treatment? #f) +(mesh/bad/repair-small-faces 1) (mesh/bad/repair-hex-block-singularity? #t) (mesh/bad/min-face-area-factor 1e-08) (mesh/bad/repair-performed? #f) (mesh/bad/enable-bad-quality-treatment? #t) (mesh/inflation-factor 2) (mesh/interpolate-in-time? #f) +(mesh/slit-misoriented-face-zone? #f) (mesh/slitting-with-extended-thread? #f) (mesh/slit/merge-junction-nodes? #t) (mesh/slit/ensure-continuous-node-id? #t) @@ -4251,9 +5391,12 @@ (mesh/compact-memory-block-limit 0.5) (mesh/verbosity 1) (mesh/check/verbosity 0) +(mesh/check/watertight-tolerance 1.) (mesh/check/quality-across-periodics? #t) +(mesh/check/before-solve? #f) (mesh/check/use-stored-metrics? #t) -(mesh/grid-check-performed? #t) +(mesh/grid-check-performed? #f) +(mesh/show-periodic-shadow-threads? #f) (gocart/morph/diffusion-law 0) (gocart/morph/residues 1e-08) (gocart/morph/solver 2) @@ -4287,6 +5430,7 @@ (polyhedra/smoothing/no-iter-bad 10) (polyhedra/smoothing/relax-all 0.1) (polyhedra/smoothing/no-iter-all 3) +(polyhedra/dual/migrate-and-reorder-warning? #t) (polyhedra/dual/migrate-and-reorder-after-conversion? #t) (polyhedra/dual/make-periodics-on-tolerance? #t) (polyhedra/dual/preserve-interior-pattern "") @@ -4322,10 +5466,10 @@ (dynamesh/sc-bc-compressibility-type 1) (dynamesh/replace-mesh/verbosity 0) (dynamesh/replace-mesh/partition-per-zone? #f) -(dynamesh/update-in-timestep/residual-criterion 1e-05) +(dynamesh/update-in-timestep/residual-criterion -1.) (dynamesh/update-in-timestep/relax-last-iter 1.) (dynamesh/update-in-timestep/relax 0.1) -(dynamesh/update-in-timestep/update-interval 1) +(dynamesh/update-in-timestep/update-interval 1000000) (dynamesh/zone-preview-substeps 0) (dynamesh/motion-history/basename "/home/ishaan/.ansys/WB_ishaan-VirtualBox_ishaan_2197_2/unsaved_project_files/dp0/FFF/MECH/FFF") (dynamesh/motion-history? #f) @@ -4350,8 +5494,9 @@ (dynamesh/in-cyn/crank-start-angle 0.) (dynamesh/in-cyn/crank-rpm 0.1666666666666667) (dynamesh/in-cyn/crank-angle 0.) -(dynamesh/models/update-in-timestep? #f) +(dynamesh/models/update-in-timestep? #t) (dynamesh/models/contact? #f) +(dynamesh/models/per? #f) (dynamesh/models/sdof? #f) (dynamesh/models/in-cylinder? #f) (dynamesh/method/remesh? #t) @@ -4359,36 +5504,207 @@ (dynamesh/method/smoothing? #t) (dynamesh/set-dynamic-zones-state? #f) (dynamesh/recreate-shells? #t) +(dynamesh/motion/nested-omega-analytical? #t) +(dynamesh/motion/grid-motion-retain-normal-bc? #t) (dynamesh/motion/mark-adjacent-zones #t) (dynamesh/motion/interfaces/search-factor 2.) +(dynamesh/motion/interfaces/custom-config ()) +(dynamesh/motion/interfaces/mid-nodes 0) (dynamesh/motion/interfaces/project? #f) (dynamesh/motion/interfaces/sync? #t) (dynamesh/steady/optional-remesh-after-moving? #f) (dynamesh/steady/n-iter 0) (dynamesh/steady/pseudo-time-step 1.) +(dynamesh/conservation/conserve-m1? #f) (dynamesh/conservation/multiphase? #t) (dynamesh/conservation/local? #t) (dynamesh/conservation/scale-max 1.25) (dynamesh/conservation/scale? #t) (dynamesh/cell-data-when-face-interpol-fails? #t) (dynamesh/face-data-interpol-range 50.) +(narrow-gaps/optimization/fast-grad? #t) +(narrow-gaps/optimization/force-gap-migration? #t) +(narrow-gaps/optimization/force-gap-update? #f) +(narrow-gaps/optimization/fast-face-list-build 2) +(narrow-gaps/stabilization/smooth-gap-shape-layers 1) +(narrow-gaps/stabilization/smooth-gap-shape? #f) +(narrow-gaps/stabilization/saved-time-step-size 1.) +(narrow-gaps/stabilization/time-step-size-factor 1.) +(narrow-gaps/stabilization/cfl-stabilization-factor 1.) +(narrow-gaps/stabilization/desired-cfl 10.) +(narrow-gaps/stabilization/dt-based-on-gap-status? #f) +(narrow-gaps/stabilization/adjust-time-step-size? #f) +(narrow-gaps/stabilization/check-cfl-condition? #f) +(narrow-gaps/stabilization/viscosity-ramp-up-layers 3) +(narrow-gaps/stabilization/max-reynolds-ramp-up-factor 250.) +(narrow-gaps/stabilization/desired-reynolds-number 1.) +(narrow-gaps/stabilization/viscosity-ramp-up-factor 10.) +(narrow-gaps/stabilization/old-gap-viscosity-factor 10.) +(narrow-gaps/stabilization/gap-viscosity-factor 1000.) +(narrow-gaps/stabilization/use-face-based-filling? #t) +(narrow-gaps/stabilization/automatic-viscosity-ramp-up? #f) +(narrow-gaps/stabilization/real-viscosity-ramp-up? #f) +(narrow-gaps/stabilization/artificial-viscosity-ramp-up? #f) +(narrow-gaps/stabilization/cushion-layer? #f) +(narrow-gaps/stabilization/control-velocity-growth? #f) +(narrow-gaps/stabilization/bounding-method 1) +(narrow-gaps/stabilization/solution-bounded? #t) +(narrow-gaps/stabilization/mirror-velocity-p? #f) +(narrow-gaps/stabilization/adjust-grads? #f) +(narrow-gaps/stabilization/linear-urf? #f) +(narrow-gaps/stabilization/seal-leaked-faces? #t) +(narrow-gaps/stabilization/remove-isolated-cells? #t) +(narrow-gaps/stabilization/steady-state? #f) +(narrow-gaps/stabilization/severity-level 0) +(narrow-gaps/stabilization/enabled? #f) +(narrow-gaps/numerics/growth-control-method 2) +(narrow-gaps/numerics/min-vel-limit-value -5000) +(narrow-gaps/numerics/max-vel-limit-value 5000) +(narrow-gaps/numerics/vel-relax-factor 0.8) +(narrow-gaps/numerics/scale-gradient-factor 1.) +(narrow-gaps/numerics/zero-int-ext-regions? #f) +(narrow-gaps/numerics/zero-derivative? #f) +(narrow-gaps/numerics/zero-rgradient? #f) +(narrow-gaps/numerics/zero-p-derivative? #f) +(narrow-gaps/numerics/zero-p-rgradient? #f) +(narrow-gaps/numerics/zero-vel-derivative? #f) +(narrow-gaps/numerics/zero-vel-rgradient? #f) +(narrow-gaps/numerics/local-1st-order-in-time? #t) +(narrow-gaps/numerics/update-turbulence? #f) +(narrow-gaps/numerics/add-gflux-to-grad? #f) +(narrow-gaps/numerics/add-gflux-to-vn? #t) +(narrow-gaps/numerics/adjust-gflux-sign? #t) +(narrow-gaps/numerics/add-pressure-work? #t) +(narrow-gaps/numerics/correct-velocity? #t) +(narrow-gaps/numerics/check-face-values? #f) +(narrow-gaps/numerics/remeshing-intp-type 0) +(narrow-gaps/controller/dynamic-interpolation? #t) +(narrow-gaps/interpolation/skip-dead-to-solve-cells? #t) +(narrow-gaps/interpolation/excessive-exchanges? #f) +(narrow-gaps/interpolation/update-grads? #t) +(narrow-gaps/interpolation/update-gap-bc-faces? #t) +(narrow-gaps/interpolation/update-gap-interface? #f) +(narrow-gaps/interpolation/update-old-time-level? #t) +(narrow-gaps/interpolation/alternative-face-flux? #f) +(narrow-gaps/interpolation/unified? #t) +(narrow-gaps/interpolation/n-layers 2) +(narrow-gaps/interpolation/face-scheme 0) +(narrow-gaps/interpolation/cell-scheme 0) +(narrow-gaps/interpolation/method 1) +(narrow-gaps/interpolation/data-type 0) +(narrow-gaps/interpolation/node-based-filling? #f) +(narrow-gaps/interpolation/node-based-data? #f) +(narrow-gaps/search-mark/cell-check/excessive-filling-scheme 2) +(narrow-gaps/search-mark/cell-check/method 2) +(narrow-gaps/search-mark/face-check/method 0) +(narrow-gaps/search-mark/cleanup-cell-marks? #t) +(narrow-gaps/search-mark/build-exceptional-handling-flist? #t) +(narrow-gaps/search-mark/enforce-filling-isolated-cells? #t) +(narrow-gaps/search-mark/cell-check/add-first-layer-cells? #t) +(narrow-gaps/search-mark/cell-check/two-sided-condition? #f) +(narrow-gaps/search-mark/cell-check/distance-factor 1.) +(narrow-gaps/search-mark/optimized? #t) +(narrow-gaps/marking/max-gap-smoothing-cycles 20) +(narrow-gaps/marking/reupdate-old-levels? #f) +(narrow-gaps/marking/reupdate-gap-regions? #t) +(narrow-gaps/marking/method 0) +(narrow-gaps/gaps-setting ()) +(narrow-gaps/coupled-walls-allowed? #f) +(narrow-gaps/update-grads? #f) +(narrow-gaps/force-orient-faces? #f) +(narrow-gaps/auxiliary-numerics? #f) +(narrow-gaps/render/active-mesh-only? #f) +(narrow-gaps/render-debug? #f) +(narrow-gaps/render-data? #f) +(narrow-gaps/render-marks? #f) +(narrow-gaps/expert-settings? #f) +(narrow-gaps/verbosity 0) +(narrow-gaps/compatibility-check? #t) +(narrow-gaps/expert-gui? #f) +(narrow-gaps? #f) +(numerics/flexible/persistence-type 0) +(numerics/flexible/time-steps 5) +(numerics/flexible/iteration-count 0) +(numerics/flexible/iterations 5) +(numerics/flexible/verbosity 0) +(numerics/flexible/override-specified-settings? #f) +(numerics/flexible/transient/modified-time-step-counter -3) +(numerics/flexible/transient/time-scale-factor 1.) +(numerics/flexible/transient/time-scale-method 0) +(numerics/flexible/transient/specify? #f) +(numerics/flexible/scalar/secondary-gradient-type 0) +(numerics/flexible/scalar/secondary-gradient-off? #t) +(numerics/flexible/zero-pressure-grad-options 0) +(numerics/flexible/flow/zero-grad-options 0) +(numerics/flexible/flow/secondary-gradient-type 0) +(numerics/flexible/flow/secondary-gradient-off? #t) +(numerics/contact/vel-grad-include-grid-flux? #f) +(numerics/flexible/advection-scheme 0) +(numerics/flexible/blending-factor 1.) +(numerics/flexible/engaged? #f) +(numerics/flexible/suspend-convergence-check? #t) +(numerics/flexible/mode 0) +(numerics/flexible/zero-grid-flux? #f) +(numerics/flexible/enable? #f) +(numerics/contact/interpolation/update-old-time-levels? #t) +(numerics/contact/interpolation/report-detailed-statistics? #f) +(numerics/contact/interpolation/report-statistics? #f) +(numerics/contact/interpolation/post? #f) +(numerics/contact/interpolation/after-gchanged? #f) +(numerics/contact/interpolation/zero-velocity? #f) +(numerics/contact/interpolation/include-bface? #t) +(numerics/contact/interpolation/include-face1? #t) +(numerics/contact/interpolation/combine-layers? #f) +(numerics/contact/interpolation/all-layers? #f) +(numerics/contact/interpolation/max-layers 1) +(numerics/contact/interpolation/scheme 2) +(numerics/contact/interpolation/method 1) +(dynamesh/contact/remesh/linear-interpolation? #t) +(numerics/contact/update-new-active-cells-method 1) +(numerics/contact/active-old? #f) +(numerics/contact/active? #f) +(dynamesh/contact/skip-face-orientation? #f) +(dynamesh/contact/zero-reconstruction-gradient? #f) +(dynamesh/contact/diffusion-enhancement-factor 1.) +(dynamesh/contact/diffusion-enhancement? #t) +(dynamesh/contact/sym-explicit-only? #f) +(dynamesh/contact/sym-limit-type 0) +(dynamesh/contact/limit-reconstruction? #t) +(dynamesh/contact/wall-type 1) +(dynamesh/contact/gap-treatment-available? #f) (dynamesh/verbosity 0) +(dynamesh/contact/compute-grid-flux? #t) +(dynamesh/contact/skip-negative-volume? #f) (dynamesh/wallbc-auto-include-motion? #t) -(dynamesh/dynamic-zones ((7 (origin (0. 0. 0.)) (reference (0 0 0)) (orient (0. 0. 0.)) (direction (0. 0. 0.)) (axis (1 0 0)) (geom "faceted") (geom-origin (0 0 0)) (geom-axis (1 0 0)) (geom-feature #f) (geom-feature-angle 3.141592653589793) (control (0. 0. 0.7)) (radius 0) (udf "gridmotions::libudf") (slide #t) (slide-method 1) (slide-elements -1) (remesh #t) (remesh-method 1) (layer #t) (type 2) (velo (0. 0. 0.)) (omega (0. 0. 0.)) (acc (0. 0. 0.)) (alpha (0. 0. 0.)) (torque (0. 0. 0.)) (sdof #f) (sdofcontrib #t) (motion-relative #f) (relative-thread -1) (contact-udf-name "") (layer-height-udf ("constant" "constant")) (gocart-param (0.01 1.2 0.05 0. 0)) (gocart-prisms #f) (gocart-prism-type 1) (gocart-prism-h 0.) (gocart-prism-ar 1.) (gocart-prism-rate 1.) (gocart-prism-nlayer 1) (bl-deform #f) (udf-deform #f) (bc-exclude-motion #t) (sop-comp #t) (sop-scale 0.5) (sop-type "volume-based")))) +(dynamesh/dynamic-zones ((7 (origin (0. 0. 0.)) (reference (0 0 0)) (orient (0. 0. 0.)) (direction (0. 0. 0.)) (axis (1 0 0)) (geom "faceted") (geom-origin (0 0 0)) (geom-axis (1 0 0)) (geom-feature #f) (geom-feature-angle 3.141592653589793) (control (0. 0. 0.7)) (radius 0) (udf "gridmotions::libudf") (slide #t) (slide-method 1) (slide-elements -1) (remesh #t) (remesh-method 1) (layer #t) (type 2) (velo (0. 0. 0.)) (omega (0. 0. 0.)) (acc (0. 0. 0.)) (alpha (0. 0. 0.)) (torque (0. 0. 0.)) (sdof #f) (sdofcontrib #t) (motion-relative #f) (relative-thread -1) (contact-udf-name "") (layer-height-udf ("constant" "constant")) (gocart-param (0.01 1.2 0.05 0. 0)) (gocart-prisms #f) (gocart-prism-type 1) (gocart-prism-h 0.) (gocart-prism-ar 1.) (gocart-prism-rate 1.) (gocart-prism-nlayer 1) (bl-deform #f) (udf-deform #f) (bc-exclude-motion #t) (sop-comp #t) (sop-scale 0.5) (sop-type "volume-based") (remesh-use-global #f)))) (dynamesh/contact/imaps ()) (dynamesh/contact/maps ()) (dynamesh/contact/zones ()) (dynamesh/contact/threshold 0.1) +(dynamesh/contact/cell-check-method 2) (dynamesh/contact/cell-distance-factor 1.) +(dynamesh/contact/cell-smooth? #t) (dynamesh/contact/cell-check-two-sided? #f) +(dynamesh/contact/on-initialization? #t) +(dynamesh/contact/render-blocked-cells? #f) +(dynamesh/contact/model 1) +(dynamesh/contact/require-dynamic-threads? #f) (dynamesh/contact/separate? #t) (dynamesh/contact/restriction? #f) (dynamesh/contact/verbosity 0) (dynamesh/contact/udf-level 2) (dynamesh/contact/udf "") (dynamesh/contact/steady? #t) +(dynamesh/per/cmplx? #f) +(dynamesh/per/objects ()) +(dynamesh/per/n-passages 0) (dynamesh/sdof/objects ()) +(dynamesh/sdof/motion-history/closest-angle? #t) +(dynamesh/sdof/motion-history-file-at-end? #f) (dynamesh/sdof/minimum-cutoff-moments 9.999999999999999e-21) +(dynamesh/sdof/implicit-udf-forces? #f) +(dynamesh/sdof/toll-implicit 9.999999999999999e-21) +(dynamesh/sdof/max-iter-implicit 20) (dynamesh/sdof/max-iter 20) (dynamesh/sdof/toll 1e-05) (dynamesh/sdof/abeta 0.25) @@ -4408,7 +5724,9 @@ (dynamesh/surf-deform/face-smoothing/method 2) (dynamesh/surf-deform/face-smoothing/small-faces? #t) (dynamesh/surf-deform/conserve-mag-factor 0.) +(dynamesh/surf-deform/clip-inward-dir 1.) (dynamesh/surf-deform/smooth-inward? #t) +(dynamesh/surf-deform/clip-inward? #t) (dynamesh/surf-deform/dx-smoothing/relax-factor 1.) (dynamesh/surf-deform/dx-smoothing/n-to-f-kernel 0) (dynamesh/surf-deform/dx-smoothing/f-to-n-kernel 3) @@ -4435,8 +5753,10 @@ (dynamesh/surf-smoother/eta-relax-factor 1.) (dynamesh/surf-smoother/tang-relax-factor 0.01) (dynamesh/surf-smoother/norm-relax-factor 1e-05) +(dynamesh/surf-smoother/laplace-factor 0.) (dynamesh/surf-smoother/feature-angle 160.) (dynamesh/surf-smoother/eta-niter 100) +(dynamesh/surf-smoother/compute-eta? #t) (dynamesh/surf-smoother/step-size 1) (dynamesh/surf-smoother/niter 10) (dynamesh/surf-smoother/use-new? #t) @@ -4444,6 +5764,7 @@ (dynamesh/surf-smoother/modified-cot? #t) (dynamesh/surf-smoother/no-gradient-across-features? #t) (dynamesh/remesh/intersecting-padding 0.1) +(dynamesh/remesh/loop-cut-angle 60.) (dynamesh/remesh/check-intersecting-loops? #t) (dynamesh/remesh/data-interpolation-across-zones? #f) (dynamesh/remesh/data-interpolation-cell-search-count 500) @@ -4453,6 +5774,7 @@ (dynamesh/remesh/repartition-interval 20) (dynamesh/remesh/repartition-auto? #t) (dynamesh/remesh/repartition-enable? #t) +(dynamesh/remesh/remesh-improvements 0) (dynamesh/remesh/verbosity 0) (dynamesh/remesh/parallel-remeshing? #t) (dynamesh/remesh/region/remesh-udf-deform? #f) @@ -4479,9 +5801,10 @@ (dynamesh/remesh/sizing-function? #f) (dynamesh/remesh/improve-remesh-local? #t) (dynamesh/remesh/improve-remeshed-cavity-threshold 0.95) +(dynamesh/remesh/sliver-skew 0.95) (dynamesh/remesh/boundary-sliver-threshold 0.999) (dynamesh/remesh/surfer-improve-method 3) -(dynamesh/remesh/refine-coarsen-order? #f) +(dynamesh/remesh/refine-coarsen-order? #t) (dynamesh/remesh/remesh-skewness-priority-marking? #t) (dynamesh/remesh/remesh-exterior-enhanced? #t) (dynamesh/remesh/remesh-exterior? #t) @@ -4500,6 +5823,43 @@ (dynamesh/remesh/min-length-scale 0.01091528311371803) (dynamesh/remesh/methods (#t #t #f #f #f #f)) (dynamesh/remesh/exchange-cell-ids-with-hash? #t) +(dynamesh/remesh/angle 40.) +(dynamesh/remesh/num-cell-layers 2) +(dynamesh/remesh/cac/verbosity 0) +(dynamesh/remesh/mmc/min-ortho 0.1) +(dynamesh/remesh/mmc/mark-poly? #f) +(dynamesh/remesh/mmc/sizing-factor-low 0.25) +(dynamesh/remesh/mmc/sizing-factor-high 2.) +(dynamesh/remesh/mmc/sizing-marking-method 3) +(dynamesh/remesh/mmc/aspect-ratio-marking? #f) +(dynamesh/remesh/mmc/avg-size? #f) +(dynamesh/remesh/mmc/mesh-based? #f) +(dynamesh/remesh/rdc/update-moving-size-fns? #t) +(dynamesh/remesh/rdc/mark-only? #f) +(dynamesh/remesh/rdc/write-out-cavity? #f) +(dynamesh/remesh/rdc/verbosity 0) +(dynamesh/remesh/rdc/prime? #f) +(dynamesh/remesh/rdc/print-conserved? #f) +(dynamesh/remesh/rdc/navg-steps 5) +(dynamesh/remesh/rdc/max-aspect-ratio 0.) +(dynamesh/remesh/rdc/cell-size-scale-factor 1.) +(dynamesh/remesh/rdc/face-size-scale-factor 1.) +(dynamesh/remesh/rdc/min-max-size-scale-factor 1.5) +(dynamesh/remesh/rdc/cell-refine-size-ratio 1.5) +(dynamesh/remesh/rdc/face-skew-improve-max 0.7) +(dynamesh/remesh/rdc/cell-skew-improve-max 0.85) +(dynamesh/remesh/rdc/growth-rate 1.2) +(dynamesh/remesh/rdc/size-field-name "sizes.sf") +(dynamesh/remesh/rdc/avg-size-field? #f) +(dynamesh/remesh/rdc/auto-mesh-sizing 1) +(dynamesh/remesh/rdc/size-field-method 3) +(dynamesh/remesh/rdc/check-level 0) +(dynamesh/remesh/unified/mesh-based-marking? #t) +(dynamesh/remesh/unified/user-max-lscale 0.) +(dynamesh/remesh/unified/user-min-lscale 0.) +(dynamesh/remesh/rdc/print? #f) +(dynamesh/remesh/unified/auto-lscale? #t) +(dynamesh/remesh/generalized-remesher? #f) (dynamesh/boundary/project-deforming-nodes-twice? #f) (dynamesh/boundary/project-deforming-nodes? #t) (dynamesh/boundary/laplace-node-relax 1.) @@ -4511,6 +5871,8 @@ (dynamesh/smooth/skewness/encapsulate-cells? #f) (dynamesh/smooth/skewness/smooth-boundary-zones-with-no-geom? #f) (dynamesh/smooth/skewness/smooth-all-deforming-zones? #t) +(dynamesh/smooth/fem/stabilization/krylov-size-last-used 0) +(dynamesh/smooth/fem/stabilization/krylov-size 10) (dynamesh/smooth/fem/precondition/max-cycles 1) (dynamesh/smooth/fem/precondition/alpha 0.3) (dynamesh/smooth/fem/use-max-residual? #t) @@ -4518,7 +5880,7 @@ (dynamesh/smooth/fem/amg-divergence-epsilon 1000000.) (dynamesh/smooth/fem/amg-tolerance 1e-09) (dynamesh/smooth/fem/amg-scale-matrix? #f) -(dynamesh/smooth/fem/amg-stabilization 1) +(dynamesh/smooth/fem/amg-stabilization 3) (dynamesh/smooth/fem/amg-cycle-type 3) (dynamesh/smooth/fem/amg-beta 0.7) (dynamesh/smooth/fem/amg-alpha 1e-10) @@ -4531,6 +5893,7 @@ (dynamesh/smooth/fem/integration-order 1) (dynamesh/smooth/fem/model 0) (dynamesh/smooth/fem/verbosity 0) +(dynamesh/smooth/laplace/boundary/no-quality-check? #f) (dynamesh/smooth/laplace/residual-divergence-history 2) (dynamesh/smooth/laplace/check-divergence? #t) (dynamesh/smooth/laplace/boundary-update-with-gradient? #f) @@ -4554,8 +5917,13 @@ (dynamesh/smooth/laplace/diff-coeff-param 0.) (dynamesh/smooth/laplace/diff-coeff-func 0) (dynamesh/smooth/laplace/verbosity 0) +(dynamesh/smooth/spring/verbosity 0) (dynamesh/smooth/method/diffusion-fvm? #f) (dynamesh/smooth/method 1) +(dynamesh/smooth/local/verbosity 1) +(dynamesh/smooth/local/marking-register-name "") +(dynamesh/smooth/local/marking-method 1) +(dynamesh/smooth/local? #f) (dynamesh/smooth/from-ref? #f) (dynamesh/grid/epsilon 0.001) (dynamesh/grid/itermax 20) @@ -4567,6 +5935,7 @@ (dynamesh/layering/constant-height #t) (dynamesh/layering/omega-col 0.2) (dynamesh/layering/omega 0.4) +(dynamesh/redistribute-bl-subset? #t) (dynamesh/transient/verbosity 0) (dynamesh/allow-time-2nd-order? #t) (dynamesh/layering/enable-2nd-order? #t) @@ -4586,9 +5955,25 @@ (post-process-equations? #f) (first-post-niter 0) (max-post-iterations-per-step 10) -(max-iterations-per-step 20) -(number-of-time-steps 0) +(max-iterations-per-step 0) +(number-of-time-steps 1) (number-of-iterations 0) +(nrbc-vinlet/on? #f) +(nrbc-pinlet/on? #f) +(nrbc-pout/on? #f) +(nrbc/unit-cfl-at-supersonic? #t) +(nrbc/vinlet-density-from-total-temperature? #t) +(nrbc/vinlet-temporal-relaxation-t 0.35) +(nrbc/vinlet-absorbing-parameter-t 0.35) +(nrbc/pinlet-purturbation-boundary-t? #f) +(nrbc/pinlet-absorbing-boundary-t? #f) +(nrbc/pinlet-temporal-relaxation-t 0.35) +(nrbc/pinlet-pressure-forcing-parameter-t 0.2) +(nrbc/pinlet-absorbing-parameter-t 0.35) +(nrbc/pout-absorbing-boundary-t? #f) +(nrbc/pout-temporal-relaxation-t 0.35) +(nrbc/pout-pressure-forcing-parameter-t 0.2) +(nrbc/pout-absorbing-parameter-t 0.35) (gen-nrbc/verbosity 0) (gen-nrbc/ig-correct? #f) (gen-nrbc/init-from-flux? #t) @@ -4614,7 +5999,14 @@ (ost/vof/exp/own-wts? #f) (ost/press/high-order/startup/ntime 3) (ost/press/high-order? #f) +(ost/press/skip-high-order? #t) +(ost/overset-specific-amg? #f) +(ost/amg/positive-interpolation-weights-t 0) +(ost/generalized-face-update-after-mesh-motion? #t) +(ost/grid-update-receptor-weights-method 1) +(ost/non-receptor-interpolation-weight-type 1) (ost/update-by-cell-status? #f) +(ost/extrapolation-donors-check-history? #f) (ost/orphan-treatment-type 0) (ost/orphan-treatment-on? #t) (ost/least-squares-enforce-zero-deltax? #f) @@ -4629,26 +6021,66 @@ (ost/least-squares-presto-pgrad-interp-principal-donor? #t) (ost/least-squares-presto-pgrad-interp? #f) (ost/least-squares-presto-central-donor? #t) +(ost/least-squares-scalars? #t) (ost/least-squares-vof? #t) (ost/lsf-fast? #t) (ost/explicit-receptors? #f) +(ost/amg/hyb-positive-weights-mode 0) +(ost/use-principal-gradient? #f) +(ost/use-principal-solution? #f) +(ost/hybrid-limit-rg? #t) +(ost/hybrid-use-rg? #f) +(ost/hybrid-unlimited-gradient? #t) +(ost/hybrid-unlimited-rg? #f) +(ost/hybrid-gradient-mode 1) +(ost/idw-gradient-method 0) +(ost/idw-exponent 1) +(ost/apply-solution-bounds? #t) +(ost/solution-interpolation-before-grad? #t) +(ost/solution-interpolation-before-rgrad? #t) +(ost/solution-interpolation-mode 1) +(ost/hybrid-weighted-system? #t) +(ost/enforce-zero-deltax? #t) +(ost/hybrid-solution-bounded? #t) +(ost/check-weights-type 3) +(ost/check-weights? #t) +(ost/interpolation-tolerance 1e-10) +(ost/allow-hybrid-interpolation? #f) (ost/inv-dist-type 0) (ost/enforce-default-solver-options? #t) -(cff-unsteady-statistics-on-solid? #t) (overset/testing? #f) (overset/expert? #f) +(overset/clearing-updates-neighborhood? #f) (overset/update-before-case-write? #t) +(overset/adapt/max-refine-level 4) +(overset/adapt/sweeps 2) +(overset/adapt/max-cycles 5) +(overset/adapt/buffer-layers-coarsen 2) +(overset/adapt/buffer-layers-refine 1) +(overset/adapt/fixed-orphans? #f) +(overset/adapt/mark-size-on-central-donor-only? #f) +(overset/adapt/type (#t #t #t)) +(overset/adapt/dynamic? #f) (overset/extended-threads/cache-hash-tables? #t) (overset/extended-threads/cache-size-threshold 1.5) +(overset/extended-threads/use? (#t #f)) +(overset/memory/compact-interval 20) (overset/partition/migrate-dci? #t) (overset/partition/metis/npart-prev-mwp -1) (overset/partition/metis/use-mwp? #t) (overset/partition/metis/dr-conn? #f) (overset/partition/interval 20) (overset/partition/method "Metis") +(overset/render/fill-area-weights? #t) +(overset/render/include-all-donor-cells? #f) (overset/render/include-receptor-cells? #f) (overset/render/need-surface-recreation? #f) (overset/verbosity 0) +(overset/donor/max-lscale-ratio 3.) +(overset/donor/modified-parameters? #f) +(overset/donor/dead-update-full-donors? #t) +(overset/donor/dead-update-nlayer 3) +(overset/donor/fill-update-connectivity? (#t #t #f)) (overset/donor/cache-search-method 1) (overset/donor/cache-bounding-cells? #t) (overset/donor/parallel-convert-orphan-cells? #f) @@ -4664,20 +6096,27 @@ (overset/donor/priority-method 0) (overset/donor/dead-neighbor-level 2) (overset/donor/include-dead-neighbors? #f) +(overset/donor/gap-blocked-neighbor-level 2) +(overset/donor/include-gap-blocked-neighbors? #t) +(overset/donor/contact-neighbor-level 2) +(overset/donor/include-contact-neighbors? #t) +(overset/donor/include-dead-to-solve-neighbors? #t) (overset/donor/include-receptor-neighbors? #t) (overset/donor/node-connected? #f) (overset/donor/check-history? #t) +(overset/donor/include-neighbors-all? #f) (overset/donor/include-neighbors? #t) (overset/donor/poly-search-node-connected? #f) (overset/donor/node-connected-after-at-location? #t) (overset/donor/accept-any-at-location-cell? #f) -(overset/donor/search-extended? #f) +(overset/donor/orphan-perturb-factor 0.5) +(overset/donor/orphan-perturb-location? #f) (overset/donor/search-tries 10) (overset/donor/search-random-max 25) (overset/donor/search-random-seed? #t) (overset/donor/search-range-node-connected 5) (overset/donor/search-range-factor -1.) -(overset/donor/search-method 2) +(overset/donor/search-method 4) (overset/fill-donors? #t) (overset/minimize/dead-to-solve-removal-method 0) (overset/minimize/receptor-to-dead-conv-method 1) @@ -4688,49 +6127,83 @@ (overset/minimize/serial-same-as-parallel? #f) (overset/minimize/donor-neighbor-check? #f) (overset/minimize-overlap? #t) +(overset/cut/modified-parameters? #f) (overset/cut/cache-extended-threads? #t) (overset/cut/full-extended-threads? #f) +(overset/cut/cut-seed-zones ()) +(overset/cut/cut-seeds ()) +(overset/cut/cut-seed-cell-at-mixed-dead-cell-nodes? #t) (overset/cut/cut-seed-cell-at-overset-threads? #t) (overset/cut/cut-seed-cell-at-cut-threads? #f) (overset/cut/cut-seed-cell-for-all-components? #f) (overset/cut/cut-seed-cell-for-cut-free-components? #t) (overset/cut/search-tries 50) (overset/cut/unresolved-cut-thread-check? #f) -(overset/cut/unmark-singular-seed-cells? #f) +(overset/cut/seed-cluster-ignore-local? #f) +(overset/cut/seed-cluster-ignore-size 0) +(overset/cut/flood-fill-max-level 0) (overset/cut/flood-fill? #t) (overset/cut/point-in-cell-method 2) +(overset/cut/unmark-wrong-outside-nodes? #t) (overset/cut/in-out-node-mark-per-zone #f) (overset/cut/in-out-node-mark-max-face-warp 5.) (overset/cut/in-out-node-mark-max-feature-angle -1.) (overset/cut/in-out-node-mark-angle 1.) (overset/cut/in-out-node-mark-tol -1.) (overset/cut/in-out-node-mark-method 0) -(overset/cut/tri-tri-intersect-method 1) (overset/cut/uncut-dead-cell-islands? #f) (overset/cut/thin-cut-aspect-ratio 5.) (overset/cut/thin-cut-nlayer 1) +(overset/cut/partial-clip-polygon-scale-factor 1.02) +(overset/cut/partial-face-scale-factor 0.95) +(overset/cut/partial-area-fraction-max 0.98) +(overset/cut/partial-area-fraction-min 0.001) +(overset/cut/partial-cut-faces? #t) +(overset/cut/feature-angle-factor 1.25) (overset/cut/feature-angle -1.) (overset/cut/face-search-range-factor 1.05) (overset/cut/face-overlap-epsilon-tolerance 1.) (overset/cut/overlap-boundaries ()) -(overset/cut/overlap-boundary-method 1) (overset/cut/overlap-boundary-relative-tolerance 5.) (overset/cut/overlap-boundary-check? #t) +(overset/cut/cut-control ()) (overset/require-background-grid? #f) +(overset/allow-mesh-interfaces? #t) (overset/allow-non-fluid-zones? #f) +(overset/auto-detect-geometry? #t) (overset/auto-create-default-interface? #t) (overset/interfaces ()) (overset/available? #t) +(solid/transient/mspec-data ()) (mgrid/transient/mspec-data ()) (mrf/transient/rotate-gravity? #t) (mrf/transient/mspec-data ()) +(si/relative-solid-data ()) (si/relative-mrf-data ()) (si/relative-mgrid-data ()) +(nonconformal/padding-fraction 0.25) +(nonconformal/water-tight-numerics? #f) +(nonconformal/add-new-child-interior? #f) +(nonconformal/area-fraction-ff? #t) +(nonconformal/use-sided-area-vector? #t) (nonconformal/new-snci? #t) (nonconformal/options/static? #f) +(nonconformal/auto-create/nonoverlap-tolerance-for-display 0.8) +(nonconformal/auto-create/keep-empty-interface? #f) +(nonconformal/auto-create/enable-optimized-pairing? #t) +(nonconformal/auto-create/pairing-between-interface-zone-only? #f) +(nonconformal/auto-create/pairing-between-diff-cell-zone-only? #f) +(nonconformal/auto-create/si-name-length 25) +(nonconformal/auto-create/naming-option 1) +(nonconformal/auto-create/default-name-prefix "intf") +(nonconformal/auto-create/max-gtol-length-factor 5.) +(nonconformal/auto-create/gtol-length-factor 1.) +(nonconformal/auto-create/adjustable-tolerance? #f) +(nonconformal/auto-create/one-to-one-pairing? #f) +(nonconformal/post-processing? #f) (nonconformal/auto-create/proximity-tolerance 0.5) (nonconformal/auto-create/apply-mapped-option-at-solids? #f) -(nonconformal/auto-create/one-to-one-pairing? #f) +(nonconformal/auto-create/auto-pairing-one-to-one? #t) (nonconformal/enable-pmn-for-virtpoly-lefthanded-faces? #t) (nonconformal/mapped/auto? #f) (nonconformal/mapped/with-limitations? #t) @@ -4747,7 +6220,7 @@ (nonconformal/use-parent-centroid? #t) (nonconformal/interface-options 0) (nonconformal/mapped? #f) -(nonconformal/with-nodes? #f) +(nonconformal/with-node-coordinates? #t) (nonconformal/matching/allow-overlap? #t) (nonconformal/matching/smallest-area-tolerance-factor 1e-08) (nonconformal/matching/angular-tolerance 89.) @@ -4759,21 +6232,17 @@ (nonconformal/pitch-tolerance 1.) (si/enforce-cont-after-bc? #f) (nonconformal/force-stretched-interfaces? #f) -(nonconformal/pl/signals ((1 0 1))) -(nonconformal/pl/n-signals 1) +(nonconformal/pl/auto-create/default-name-prefix "phase-lag-intf") (nonconformal/pl/ghost-cell-layer-type 2) (nonconformal/pl/ghost-cell-layer-count 2) (nonconformal/pl/copy-grad? #t) -(nonconformal/pl/relax 0.7) -(nonconformal/pl/n-init-cycles 1) -(nonconformal/pl/method 1) -(nonconformal/pl/n-modes 10) (nonconformal/plbc? #f) (nonconformal/allow-side-periodic-wall-interface? #f) (nonconformal/interface-zone-types ()) (nonconformal/new-proximity-algo? #f) (nonconformal/angular-tolerance 45) (nonconformal/normal-tolerance-factor 0.1) +(nonconformal/smallest-area-tolerance-factor-nonoverlap 0.005) (nonconformal/smallest-area-tolerance-factor 0.005) (nonconformal/smallest-virtpoly-size 1e-18) (nonconformal/enhanced-intersection-lookup? #t) @@ -4781,13 +6250,62 @@ (nonconformal/max-nodes-per-voxel 100) (nonconformal/verbosity 0) (nonconformal/correct-virtpoly-face-handedness? #f) +(nonconformal/periodic-is-matching? #t) +(sliding-interfaces-one-to-one ()) (sliding-interfaces ()) -(solvertime 0.) +(list-of-tables ()) +(solvertime 31.213376) (user-defined-db-name "") (user-defined-database? #f) +(material/property-warnings 1) +(material/sat-clipping-option 1) +(material/independent-rgp-tables-for-properties? #f) +(material/use-mix-conductivity-combination-avg 0) +(material/cueos-cp-departure-limit 5.) +(material/blended-table-derivatives? #t) (materials ((water-liquid fluid (chemical-formula . h2o) (density (constant . 998.2) (compressible-liquid 101325 998.2 2200000000. 7.15 1.1 0.9)) (specific-heat (constant . 4182) (polynomial piecewise-linear (280 . 4201) (300 . 4181) (320 . 4181) (340 . 4188) (360 . 4202) (373 . 4216) (380 . 4224) (400 . 4256) (420 . 4299) (440 . 4357) (460 . 4433) (480 . 4533) (500 . 4664) (520 . 4838) (540 . 5077) (560 . 5424) (580 . 5969))) (latent-heat (constant . 2263073)) (vaporization-temperature (constant . 284)) (boiling-point (constant . 373)) (volatile-fraction (constant . 1)) (binary-diffusivity (film-averaged (averaging-coefficient 0.3333) (film-diffusivity (polynomial piecewise-linear (273 . 2.2e-05) (300 . 2.59e-05) (313 . 2.92e-05) (350 . 3.4e-05) (373 . 3.8e-05) (400 . 4.29e-05) (450 . 5.28e-05) (473 . 5.76e-05)) (constant . 3.05e-05))) (constant . 3.05e-05)) (thermal-conductivity (constant . 0.6)) (viscosity (constant . 0.001003)) (dpm-surften (constant . 0.0719404) (polynomial piecewise-polynomial (50 641 0.0649503 0.000246819 -9.28884e-07 6.01831e-10))) (vapor-pressure (polynomial piecewise-linear (273 . 610) (274 . 657) (275 . 706) (280 . 1002) (284 . 1329) (290 . 1937) (295 . 2658) (300 . 3565) (307 . 5316) (310 . 6275) (315 . 7974) (320 . 10612) (325 . 13289) (330 . 17308) (340 . 26579) (350 . 41877) (356 . 53158) (360 . 62498) (370 . 90935) (371 . 94295) (372 . 97757) (373 . 101000) (393 . 202000) (425 . 505000) (453 . 1000000) (486 . 2000000) (507 . 3000000) (537 . 5000000) (584 . 10000000) (615 . 15000000) (639 . 20000000) (647.14 . 22064000)) (constant . 2658)) (molecular-weight (constant . 18.0152)) (species-phase (constant . 1)) (formation-enthalpy (constant . -285841220.)) (reference-temperature (constant . 298)) (lennard-jones-length (constant . 1.)) (lennard-jones-energy (constant . 100.)) (formation-entropy (constant . 69902.211)) (therm-exp-coeff (constant . 0)) (speed-of-sound (none . #f))) (air fluid (chemical-formula . #f) (density (constant . 1.225) (compressible-liquid 101325 1.225 142000. 1 1.1 0.9)) (specific-heat (constant . 1006.43) (polynomial piecewise-polynomial (100 1000 1161.48214452351 -2.36881890191577 0.0148551108358867 -5.03490927522584e-05 9.9285695564579e-08 -1.11109658897742e-10 6.54019600406048e-14 -1.57358768447275e-17) (1000 3000 -7069.81410143802 33.7060506468204 -0.0581275953375815 5.42161532229608e-05 -2.936678858119e-08 9.237533169567681e-12 -1.56555339604519e-15 1.11233485020759e-19))) (thermal-conductivity (constant . 0.0242)) (viscosity (constant . 1.7894e-05) (sutherland 1.716e-05 273.11 110.56) (power-law 1.716e-05 273.11 0.666)) (molecular-weight (constant . 28.966)) (lennard-jones-length (constant . 3.711)) (lennard-jones-energy (constant . 78.59999999999999)) (thermal-accom-coefficient (constant . 0.9137)) (velocity-accom-coefficient (constant . 0.9137)) (formation-entropy (constant . 194336)) (reference-temperature (constant . 298.15)) (critical-pressure (constant . 3758000.)) (critical-temperature (constant . 132.3)) (acentric-factor (constant . 0.033)) (critical-volume (constant . 0.002857)) (therm-exp-coeff (constant . 0)) (speed-of-sound (none . #f))) (aluminum solid (chemical-formula . al) (density (constant . 2719)) (specific-heat (constant . 871)) (thermal-conductivity (constant . 202.4)) (formation-entropy (constant . 164448.08)) (electric-conductivity (constant . 35410000.)) (magnetic-permeability (constant . 1.257e-06))))) (proximity/threads ()) (proximity/faces-per-twig 50) +(mda/cht/single-session/verbosity 0) +(mda/cht/exchange-time-interval 1.) +(mda/cht/exchange-frequency 10) +(mda/cht/exchange-type 3) +(mda/cht/single-session? #t) +(mda/cht? #f) +(lb/collide-coeffs/cw 0.5) +(lb/collide-coeffs/cs 0.1) +(lb/collide-coeffs/sq 1.92) +(lb/collide-coeffs/s16 1.92) +(lb/collide-coeffs/s2 1.14) +(lb/collide-coeffs/s1 1.63) +(lb/wall/maxyplus 5000.) +(lb/wall/alternate-wf 4) +(lb/initialize-compute-from " ") +(lb/boundary-size 0.1) +(lb/ref-steps 1) +(lb/mesh-size 0.1) +(lb/number-of-timesteps 0) +(lb/views ()) +(lb/animations-data-state ()) +(lb/solution-animations ()) +(lb/auto-save ()) +(lb/report-definitions ()) +(lb/mesh-refinement-box ()) +(lb/custom-boundary-size ()) +(lb/post/revert-point-creation? #f) +(lb/reporting-interval 100) +(lb/pressure-wave-damping/timesteps 0) +(lb/dt 1e-05) +(lb/timestep-options "Fixed") +(lb/models/viscous "Smagorinsky") +(lb/time-step 0) +(lb/flow-time 0.) +(parallel/migration-buffer-length-min 10000) +(parallel/migration-buffer-length 100000) +(parallel/migration-buffer-size-min 1000000) +(parallel/migration-buffer-size 10000000) +(partition/partition-count 1) +(partition/require-group-partition? #t) (partition/smooth/aspect-ratio -1) (partition/band/new? #t) (partition/band/record? #f) @@ -4799,6 +6317,7 @@ (partition/laplace/hist/nbins 100) (partition/laplace/hist/spacing "auto") (partition/laplace/solid-ratio-cutoff 0.2) +(partition/laplace/use-cell-wt? #t) (partition/laplace/use-multi-wt? #t) (partition/check-partition-method? #f) (partition/metis/minimize-communication? #t) @@ -4808,6 +6327,9 @@ (partition/balance/adaption/interval 10) (partition/balance/adaption/auto? #t) (partition/balance/adaption/threshold 5) +(partition/weight/filter/metis/min-cell-cutoff 1) +(partition/weight/filter/metis/factor 0.9) +(partition/weight/filter/metis/use? #t) (partition/weight/filter/log_base 1.1) (partition/weight/filter/max-wgt-ratio 500) (partition/weight/filter/beta 0.7) @@ -4848,6 +6370,10 @@ (partition/weight/nface/use? #t) (partition/solid/abs-fluid-cell-deviation 0.05) (partition/solid/repartition-after-read-case? 0) +(parallel/virtual-machine/ranks-per-machine-min 10) +(parallel/virtual-machine/ranks-per-machine -1) +(partition/auto/mwp-cell-zone-info (2 10)) +(partition/auto/mwp-enforce? #f) (partition/auto/applied? #f) (partition/auto/remap? #t) (partition/auto/weight/nface/value 2) @@ -4855,6 +6381,7 @@ (partition/force-solid-constraint? #f) (partition/model-weighted-partition 1) (partition/minimum-elements-for-parallel-sort 0) +(partition/auto/combine-partitions? #f) (partition/auto/fast? #t) (partition/auto/force? #f) (partition/auto/load-vector ()) @@ -4890,16 +6417,24 @@ (partition/expert? #f) (partition/cell-function "") (errorhandling/use-async-signal-unsafe-functions? #f) +(cache-flush/disabled? #t) (cache-flush/swap-cache-max-effect 0.4) (cache-flush/free-cache-min-effect 0.4) (cache-flush/target/reduce-by-mb 0) (cache-flush/allocunitsize-in-mb 1) +(parallel/point-monitor/check-grid-id? #t) (parallel/mallopt-mmap-threshold 262144) +(parallel/partition-zone-flag 0) (parallel/htc/acc-do-cycles 2) (parallel/htc/acc-do-sweeps-before-convergence-check 1) (parallel/htc/acc-do-tolerance 0.001) (parallel/htc/acc-do-sweep-exchange? #t) (parallel/htc/acc-do-sweeps 20) +(parallel/metrics-recomputation-optimized? #t) +(parallel/weights-recompute-boundary-only? #t) +(parallel/nci-avoid-create-neighborhood? #t) +(parallel/si-cleanup-fraction 0.3) +(parallel/si-cleanup-interval 1000) (parallel/add-ext-si-bridge-nodes-to-int-or-corner? #t) (parallel/neighborhood/fast-corner? #t) (parallel/overlap-case-io-facedump-fill-processing? #t) @@ -4916,6 +6451,8 @@ (parallel/panfs-layout (4 65536 65535 1 1)) (parallel/panfs-auto-parameter 0.5) (parallel/migrate-metrics? #t) +(parallel/use-exchange-face-shadow-svar-message? #t) +(parallel/node-message/enhanced-update-flag-exchange? #t) (parallel/node-message/p2p? #t) (parallel/comm-type-io 1) (parallel/comm-type-amg 1) @@ -4929,7 +6466,7 @@ (parallel/migrate-si-after-adaption? #t) (parallel/claim-host-not-filled? #f) (parallel/read-case-data-shipping/use-packing? #f) -(parallel/use-t1-build-grid? #t) +(parallel/use-t1-build-grid? #f) (parallel/read-case-data-shipping? #t) (parallel/data-shipping? #t) (parallel/print-mpi-io? #f) @@ -4957,8 +6494,8 @@ (parallel/nprocs_string "1") (parallel/ruser "") (parallel/rhost "") -(parallel/path "/ansys_inc/v191/fluent") -(parallel/function "fluent 2d -flux -node -alnamd64 -r19.1.0 -t1 -pshmem -mpi=ibmmpi -ssh") +(parallel/path "/opt/Software/ansys/ansys_inc/v212/fluent") +(parallel/function "fluent 2ddp -flux -node -r21.2.0 -t1 -pshmem -mpi=intel -ssh") (parallel/sync-interval 10) (parallel/check-verbosity 0) (parallel/print-verbosity 1) @@ -4966,6 +6503,7 @@ (parallel/mask ()) (parallel/hostsfile "") (parallel/machines ()) +(data/single? #f) (case/single? #f) (case/save-id? #f) (checkpoint/time-step? #f) @@ -4973,7 +6511,7 @@ (checkpoint/write-case? #t) (checkpoint/restart-filename "") (checkpoint/filename "") -(case-config ((rp-seg? . #t) (rp-acoustics? . #f) (rp-atm? . #f) (rp-axi? . #f) (rp-des? . #f) (rp-dpm-cache? . #f) (rp-dpm-cache-serial? . #f) (rp-unsteady? . #t) (rp-dual-time? . 1) (rp-amg? . #f) (rf-energy? . #f) (rp-hvac? . #f) (rp-inviscid? . #f) (rp-ke? . #f) (rp-kklw? . #f) (rp-kw? . #f) (rp-lam? . #t) (rp-les? . #f) (rp-lsf? . #f) (rp-net? . #f) (rp-react? . #f) (rp-sa? . #f) (rp-sas? . #f) (rp-sge? . #f) (rp-spe? . #f) (rp-spe-part? . #f) (rp-potential? . #f) (rp-electro-chem? . #f) (rp-spe-site? . #f) (rp-spe-surf? . #f) (rp-trans-one-eqn? . #f) (rp-trans-sst? . #f) (rp-trb-scl? . #f) (rp-turb? . #f) (rp-absorbing-media? . #f) (rp-visc? . #t) (rp-v2f? . #f) (sg-cylindrical? . #f) (sg-disco? . #f) (sg-montecarlo? . #f) (sg-bee-gees? . #f) (sg-crev? . #f) (sg-dpm? . #f) (sg-dqmom-iem? . #f) (sg-dtrm? . #f) (sg-dynmesh? . #t) (sg-overset? . #f) (sg-ecfm? . #f) (sg-geqn? . #f) (sg-hg? . #f) (sg-inert? . #f) (sg-ignite? . #f) (sg-network? . #f) (sg-node-udm? . #t) (sg-noniterative? . #f) (sg-nox? . #f) (sg-melt? . #f) (sg-micro-mix? . #f) (sg-mphase? . #f) (sg-p1? . #f) (sg-par-premix? . #f) (sg-pb? . #f) (sg-pdf? . #f) (sg-pdf-transport? . #f) (sg-premixed? . #f) (sg-pull? . #f) (sg-rosseland? . #f) (sg-rsm? . #f) (sg-s2s? . #f) (sg-soot? . #f) (sg-sox? . #f) (sg-spark? . #f) (sg-swirl? . #f) (sg-udm? . #t) (sg-uds? . #f) (sg-addon? . #f) (sg-addon-loaded? . #f) (sg-vfr? . #f) (sg-solar? . #f) (sg-wetsteam? . #f) (sg-moistair? . #f) (sg-wallfilm? . #f) (hyb-init? . #f) (rp-spe-surf-rc? . #f) (rp-3d? . #f) (rp-double? . #f) (rp-graphics? . #t) (rp-host? . #t) (rp-thread? . #t) (dpm-cache? . #t) (rp-wallfilm? . #f))) +(case-config ((rp-seg? . #t) (rp-acoustics? . #f) (rp-atm? . #f) (rp-axi? . #f) (rp-des? . #f) (rp-dpm-cache? . #f) (rp-dpm-cache-serial? . #f) (rp-unsteady? . #t) (rp-dual-time? . 1) (rp-amg? . #f) (rf-energy? . #f) (rp-hvac? . #f) (rp-inviscid? . #f) (rp-ke? . #f) (rp-kklw? . #f) (rp-kw? . #f) (rp-lam? . #t) (rp-les? . #f) (rp-structure? . #f) (rp-structure-damping? . #f) (rp-structure-linear? . #f) (rp-structure-nonlinear? . #f) (rp-structure-time? . 1) (rp-lsf? . #f) (rp-net? . #f) (rp-react? . #f) (rp-sa? . #f) (rp-sas? . #f) (rp-sge? . #f) (rp-spe? . #f) (rp-spe-part? . #f) (rp-potential? . #f) (rp-lithium? . #f) (rp-electro-chem? . #f) (rp-spe-site? . #f) (rp-spe-surf? . #f) (rp-transition-model . none) (rp-trans-one-eqn? . #f) (rp-trans-sst? . #f) (rp-trb-scl? . #f) (rp-turb? . #f) (rp-absorbing-media? . #f) (rp-visc? . #t) (rp-v2f? . #f) (sg-cylindrical? . #f) (sg-disco? . #f) (sg-montecarlo? . #f) (sg-bee-gees? . #f) (sg-crev? . #f) (sg-dpm? . #f) (sg-dqmom-iem? . #f) (sg-dtrm? . #f) (sg-dynmesh? . #t) (sg-overset? . #f) (sg-ecfm? . #f) (sg-geqn? . #f) (sg-hg? . #f) (sg-inert? . #f) (sg-ignite? . #f) (sg-network? . #f) (sg-node-udm? . #t) (sg-noniterative? . #f) (sg-nox? . #f) (sg-melt? . #f) (sg-micro-mix? . #f) (sg-mphase? . #f) (sg-p1? . #f) (rp-sootspecies? . #f) (sg-par-premix? . #f) (sg-pb? . #f) (sg-pdf? . #f) (sg-pdf-transport? . #f) (sg-premixed? . #f) (sg-pull? . #f) (sg-rosseland? . #f) (sg-rsm? . #f) (sg-s2s? . #f) (sg-soot? . #f) (sg-sox? . #f) (sg-spark? . #f) (sg-swirl? . #f) (sg-twotemp? . #f) (sg-udm? . #t) (sg-uds? . #f) (sg-addon? . #f) (sg-addon-loaded? . #f) (sg-vfr? . #f) (sg-solar? . #f) (sg-wetsteam? . #f) (sg-moistair? . #f) (sg-wallfilm? . #f) (hyb-init? . #f) (rp-spe-surf-rc? . #f) (rp-3d? . #f) (rp-double? . #t) (rp-graphics? . #t) (rp-host? . #t) (rp-thread? . #t) (dpm-cache? . #t) (rp-wallfilm? . #f))) (sampling-chunk 1) (iteration-chunk 1) (reference-tol 1e-06) @@ -4990,6 +6528,8 @@ (reference-density 1.225) (reference-depth 1) (reference-area 1) +(restart/identical-at-any-time? #f) +(restart/identical-from-saved-data? #f) (restart/deterministic? #f) (reorder/domain/label-cells-and-faces? #t) (reorder/domain/verbose #t) @@ -5015,12 +6555,14 @@ (positivity-limit 0.2) (boundary-values? #t) (separate-thread-id-list ()) +(uncoupled-face-zones-original-state ()) (deactivated-original-state ()) (deactivated-dynamic-zones ()) (append-rp-list ()) (scanned-thread-list ()) (geom-thread-id/name ()) (reading-surface-mesh? #f) +(grid/compact-memory-blocks-after-case-read? #t) (grid/msn? #t) (grid/partitions? #f) (grid/level 0) @@ -5032,12 +6574,19 @@ (refine/cell-distance 1.) (refine/split-ratio 0.5) (refine/maxv 1) +(boundary-layer/normal-deviation-cutoff 0.8660254040000001) +(boundary-layer/prism-count-cutoff 0.07000000000000001) +(boundary-layer/initialized? #f) +(boundary-layer/persist? #f) +(boundary-layer/verbosity 0) (cell-register/max-count-for-display 10000) +(adapt/predicates ("max-refine-level" "min-refine-volume" "skip-zero-level-coarsening")) +(adapt/display/settings ()) (adapt/overset/inout-mark-dead-cells? #t) (adapt/reconstruct-geometry? #f) +(adapt/unused-mid-node-limit 0) (adapt/quality/min 0.01) (adapt/verbosity 0) -(adapt/method 0) (adapt/yp/min 50) (adapt/yp/max 500) (adapt/yp/type 0) @@ -5058,12 +6607,14 @@ (adapt/coarsen/marker/color "cyan") (adapt/coarsen/marker/size 0.1) (adapt/coarsen/marker/symbol "@") +(adapt/coarsen/expression "") (adapt/coarsen/bit 1) (adapt/coarsen? #t) (adapt/refine/use-edge-centroids? #t) (adapt/refine/marker/color "red") (adapt/refine/marker/size 0.1) (adapt/refine/marker/symbol "@") +(adapt/refine/expression "") (adapt/refine/bit 0) (adapt/refine? #t) (adapt/dynamic/print-memory-usage? #f) @@ -5072,6 +6623,7 @@ (adapt/dynamic/list-functions ("Pressure..." "Static Pressure")) (adapt/dynamic/function "pressure") (adapt/dynamic/sweeps 1) +(adapt/advanced? #f) (adapt/dynamic? #f) (adapt/gradient/volume-weight 1.) (adapt/gradient/normalize-per-zone? #f) @@ -5084,10 +6636,22 @@ (adapt/threshold/volume-change 2.5) (adapt/threshold/coarsen 0) (adapt/threshold/refine 10000000000.) +(adapt/threads/2.5d ()) (adapt/threads ()) +(adapt/expression? #t) +(adapt/anisotropic/max-nodes 30) +(adapt/anisotropic/max-depth 0) +(adapt/anisotropic/status 0) +(adapt/anisotropic? #f) +(adapt/objects? #f) +(adapt/status 0) +(adapt/objects ()) +(prof-ref-frame-list ()) (interp-method-list ()) (interp-method 0) (distance/crit 1.5) +(prmxa-rans 0.52) +(prmxcd-rans 0.37) (prmx-adiabatic? #t) (prmxmu 0.26) (prmxa 0.52) @@ -5153,7 +6717,7 @@ (retheta-sig 2.) (intermit-sig 1.) (turb-positive-linearization-separate? #f) -(kw-linearize-dissipation-newton? #f) +(kw-dissipation-newton? #t) (kw-not-trans-sst-production-limiter? #t) (kw-not-trans-sst-kato-launder? #f) (kw-sst-min-visc/apply-below-f2-value 0.) @@ -5170,17 +6734,25 @@ (sst-sig-w1 2.) (sst-sig-k2 1.) (sst-sig-k1 1.176) +(geko-creal 0.577) (geko-beta 0.083) (geko-sig-w 1.17) (geko-sig-k 1.) (geko-coeff 2.) +(geko-bf-lam-low-lim 1.) +(geko-bf-lam 25.) +(geko-bf-tur 2.) (geko-bf-blam 0.666667) (geko-bf-blend 0.9) -(geko-cjet 1.) +(geko-bf-pre193? #f) +(geko-cjet-aux 2.) +(geko-cjet-v193 0.9) (geko-cmix 0.) +(geko-cnw-sub 1.7) (geko-cnw 0.5) (geko-csep 1.75) (geko-enforce-wdf? #f) +(kw-geko-on? #f) (geko? #f) (bsl-beta-i2 0.0828) (bsl-beta-i1 0.075) @@ -5235,6 +6807,7 @@ (des-sst-on? #f) (des-rke-on? #f) (des-sa-on? #f) +(sbes-bf-include-sub-function1? #t) (sbes-freestream-one? #f) (sbes-csdes 0.4) (sbes-cs 20.) @@ -5271,6 +6844,7 @@ (coeff-kw-mu-dok 0.001) (coeff-ke-mu-prod 1.) (coeff-ke-mu-dok 1.) +(turb-alt-negative-handling? #f) (turb-wf-thermal-han-and-reitz-beta 2.5) (turb-wf-thermal-han-and-reitz-on? #f) (turb-wf-ustar-limiter-coef 0.1) @@ -5279,8 +6853,10 @@ (turb-non-newton-lb? #f) (turb-non-newton? #f) (wall-distance/fill-wall-roughness? #f) +(wall-distance/update-synthetic-turbulence? #f) (wall-distance/update-roughness? #f) (wall-distance/check-during-computation? #t) +(wall-distance/quad-correction-nonprojecting? #f) (wall-distance/quad-correction-aspect-ratio 100) (wall-distance/quad-correction? #t) (wall-distance-legacy? #f) @@ -5362,7 +6938,7 @@ (nut-imp-diff? #t) (nut-prod-const 2.) (nut-prod-modify? #f) -(nut-kappa 0.41) +(sa-kappa 0.4187) (nut-cw3 2.) (nut-cw2 0.3) (nut-prt 0.667) @@ -5372,6 +6948,12 @@ (eles-rli-move-srcs-by-n-cell-layers 0) (eles-rli-suppress-src-terms-in-rans-layer? #f) (eles-rli-suppress-sas-term-in-rans-layer? #t) +(synthetic-turb/stg/c-kstep 0.5) +(synthetic-turb/stg/c-kmin 0.5) +(synthetic-turb/stg/c-kmax 2.882) +(synthetic-turb/stg/time-argument 1) +(synthetic-turb-generator-nk 200) +(synthetic-turb-generator-q 0.95) (vm-sinusoidal-switching? #f) (vm-strmws-mean-flow-velo-lat-grad-method 2) (vm-eles-rli-axial-fluct-use-grad? #f) @@ -5388,7 +6970,12 @@ (synthetic-turb-convective-time-scale-coeff 1.) (synthetic-turb-eddy-time-scale-coeff 1.) (delta-time-sampled-scr-urea-depo-risk 0.) +(delta-time-sampled-dpm-volfrac 0.) (delta-time-sampled-dpm 0.) +(delta-time-sampled-datasets 0.) +(stat-datasetname-index ()) +(statistics-datasets ()) +(save-statistics-datasets? #f) (unstat-cffname-index ()) (save-time-statistics-dpm? #f) (cff-unsteady-statistics-freq 0) @@ -5398,6 +6985,7 @@ (delta-time-sampled-species (0.)) (delta-time-sampled-premix 0) (delta-time-sampled-non-premix 0) +(delta-time-sampled-force 0.) (delta-time-sampled-wall 0.) (delta-time-sampled-heat-flux 0.) (delta-time-sampled-shear 0.) @@ -5406,16 +6994,18 @@ (save-time-statistics-premix? #t) (save-time-statistics-non-premix? #t) (save-time-statistics-species ()) +(save-time-statistics-force? #f) (save-time-statistics-wall? #t) (save-time-statistics-heat-flux? #t) (save-time-statistics-shear? #t) +(save-time-statistics-at-end? #t) (save-time-statistics? #f) +(save-steady-statistics? #f) (les-inlet-random? #f) (les-utau-newton-iter? #t) (les-enh-wall-fn? #t) (les-ww-wall? #f) (les-mixed-sgs-on? #f) -(les-dynamic-skip-exchange-r17? #f) (les-dynamic-compressible-r16? #t) (les-dynamic-const-max 0.23) (les-dynamic-pr-num-smooths 1) @@ -5427,7 +7017,6 @@ (les-dynamic-smag-on? #f) (les-dynamic-sgske-on? #f) (les-sgske-on? #f) -(les-wmles-smnsomg/version-r145? #f) (les-wmles-smnsomg/c2 2.) (les-wmles-smnsomg/c1 3.) (les-wmles-smnsomg/cw 0.15) @@ -5450,8 +7039,40 @@ (use-smag-wmles? #f) (les-smag-const 0.1) (les-2d? #f) +(turbulence/machine-learning-wj-earsm-beta-coeffs? #f) +(turbulence/machine-learning? #f) +(turbulence/trans/harmonic-averaged-tke-for-tu? #t) +(turbulence/trans/alg/cfpg-lowtu 1.) +(turbulence/trans/alg/capg-lowtu -0.5) +(turbulence/trans/alg/cfpg-higtu 0.6) +(turbulence/trans/alg/capg-higtu -0.5) +(turbulence/trans/alg/clambda-scale 1.) +(turbulence/trans/alg/rec-c2 1.) +(turbulence/trans/alg/rec-c1 210.) +(turbulence/trans/alg/rec-max 1000.) +(turbulence/trans/alg/ctu-lowtu 2.25) +(turbulence/trans/alg/ctu-higtu 1.06) +(turbulence/trans/alg/cbubble-c2 2.5) +(turbulence/trans/alg/cbubble-c1 0.5) +(turbulence/trans/alg/rv1-switch 1000.) +(turbulence/buoyancy-effects-option 1) +(turbulence/verbosity 0) (les-cpld-diss-coeff 0.2) (test-low-diffusion-inviscid-flux? #f) +(z-displacement/default 0) +(y-displacement/default 0) +(x-displacement/default 0) +(structure/amg/smoother/sweep-partition-interface? #f) +(structure/amg/smoother/under-relax-factor 0.) +(structure/equations-scale? #t) +(structure/stabilization/max-iter 500) +(structure/amg-stabilization 1) +(structure/amg-cycle-type 3) +(structure/amg-beta 0.7) +(structure/nonlin/amg-alpha 1e-12) +(structure/amg-alpha 1e-10) +(structure/scheme 30) +(structure/relax 1.) (omega/nk 1) (omega/nj 0) (omega/ni 0) @@ -5478,7 +7099,10 @@ (cpld/sol-steering/flow-type "subsonic") (cpld/sol-steering? #f) (first-to-second-order-blending 1.) -(cpld/solution-bounding/verbose? #f) +(test-dbns-bcd? #f) +(cpld/divergence-prevention-active-t? #f) +(cpld/divergence-prevention-relaxation-t 0.1) +(cpld/solution-bounding/verbose-frequency 11) (cpld/solution-bounding/eps 1e-06) (cpld/solution-bounding/min-urf 0.01) (cpld/solution-bounding? #t) @@ -5496,11 +7120,13 @@ (cpld/smooth-cfl-recovery-max-percentage-increase 25) (cpld/smooth-cfl-recovery-niter 10) (cpld/enable-smooth-cfl-recovery? #t) -(cpld/aratio-cutoff 20.) (cpld/cell-ar/cflvnn 1.) (cpld/cell-ar/cflmult 100.) (cpld/cell-ar/debug? #f) (cpld/enable-newtimestep? #f) +(cpld/partial-slip-tve-type 0) +(cpld/partial-slip-thermal-type 1) +(cpld/partial-slip-mom-type 1) (cpld/reporting-add-wall-dissipation-flux? #t) (cpld/inlet-diffusion? #t) (mp-rg/relax-unsteady 0.75) @@ -5525,8 +7151,27 @@ (z-velocity-rg/relax 0.25) (y-velocity-rg/relax 0.25) (x-velocity-rg/relax 0.25) +(defaults/pre-2021r2-save-time-statistics-at-end? #f) +(defaults/pre-2021r2-turb-trans-harmonic-averaged-tke-for-tu? #f) +(defaults/pre-2021r2-interior-nci-gradient-enhancement? #f) +(defaults/pre-2021-normal-mach-number? #f) +(defaults/pre-2021r1-node-weight-sum-threshold? #f) +(defaults/pre-2021r1-symmetry-face-grad-weight? #f) +(defaults/pre-2021r1-swirl-axi-mirror-limiting? #f) +(defaults/pre-2021r1-wfgc-jump? #f) +(defaults/pre-2021r1-delta-form? #f) +(defaults/pre-2019r3-pmn? #f) +(defaults/pre-2019r3-rc? #f) +(defaults/pre-r19.3-pseudo? #f) +(defaults/pre-r19.3-cpt? #f) +(defaults/pre-r19.3-turb? #f) (defaults/pre-r19.0-early? #f) (defaults/pre-r19.0? #f) +(gradient/optimized-t? #t) +(recon/nb-hyb-symmetry-face-inv-distance-weight? #t) +(recon/swirl-axis-mirror-limiting? #t) +(recon/wfgc-jump-enhanced? #t) +(recon/use-nci-sided-area-vectors? #t) (recon/relax/smooth-restart-from-data? #f) (recon/periodic/use-cell-values? #t) (recon/relax/verbosity 0) @@ -5548,9 +7193,18 @@ (recon/lim/filter/on? #f) (recon/lim/dx-to-face? #t) (recon/lim/sigp 0.05) +(recon/lim/minmax/node-based? #f) (recon/lim/allneighbors? #f) (recon/lim/method 6) (recon/lim/newimpl? #f) +(recon/hessian/lp 4.) +(recon/hessian/multiscale? #f) +(recon/hessian/aniso-scale? #t) +(recon/hessian/scale? #t) +(recon/hessian/variable 0) +(recon/hessian/method 2) +(recon/hessian/aniso-hessian? #f) +(recon/hessian? #f) (recon/cell-lsq/skip-lsq-for-disco? #f) (recon/enable-node-grad-on-poly? #t) (cpld-lsq-ncycles 5) @@ -5579,11 +7233,19 @@ (recon/node-grad-d2udx2? #f) (bcd-freeze-iter 0) (bcd-c 10) -(bcd-alfa 0.25) +(bcd-bound-field? #f) +(bcd-bound-expression "0.75") +(bcd-alfa 1.) (bcd-jasak-scheme? #f) +(bcd-dbns-constant-blending-factor-t 0.8) +(bcd-constant-blending-factor-t 0.9) +(bcd-dbns-constant-blending? #t) +(bcd-constant-blending-t? #f) (bcd-jasak-blending? #f) (bcd-tanh-blending? #f) +(bcd-dbns-skew-correction-mode 1) (bcd-skew-correction-mode 0) +(recon/node-weight-sum-threshold 1e-10) (recon/node-grad-diffusion? #f) (recon/node-boundary-lsq? #t) (recon/node-scale-id 2) @@ -5614,6 +7276,7 @@ (recon/length-based? #f) (recon/r15-sym-limit? #t) (recon/limit/epsilon 0.01) +(export/cdat/internal-face-cell-data #t) (recon/limit? #t) (recon/k-exact? #f) (recon/freeze? #f) @@ -5632,7 +7295,30 @@ (export/write-thermal-load? #f) (export/vki-verbose? #f) (export/write-structural-load? #t) +(export/endvs/prev-scalars ()) +(export/endvs/prev-partids ()) +(export/endvs/start-server? #t) +(export/endvs/last-iter-no 0) +(export/endvs/compute-nodes 0) +(export/endvs/frequency 1) +(export/endvs/time-values ()) +(export/endvs/nodes-per-server 1) +(export/endvs/cachepath "") +(export/endvs/baseport 50055) +(export/endvs/hostname "localhost") +(export/endvs/transient? #f) +(export/endvs/filename "") +(export/ensos/compute-nodes 0) +(export/ensos/filename "") +(export/ensos/frequency 1) +(export/ensos/last-iter-no 0) +(export/ensos/fl-start-num 1) +(export/ensos/transient/separate-file? #t) +(export/ensos/time-step-values ()) +(export/ensos/time-values ()) (export/ensight/sos/transient? #f) +(export/ascii/boundary-val? #t) +(export/cgns-hdf5? #t) (export/ensight/functions ()) (export/ensight/filename "") (export/ensight/phase 1) @@ -5642,6 +7328,7 @@ (export/ensight/fl-start-num 1) (export/ensight/frequency 1) (export/ensight/particle-time-values ()) +(export/ensight/time-step-values ()) (export/ensight/time-values ()) (export/ensight/interior-zones ()) (export/show-element-sets? #f) @@ -5679,6 +7366,75 @@ (cell-function-list ()) (cfd-post-data ()) (fem-map/thread-id-list ()) +(tve/patch 300) +(tve/default 300) +(twotemp/inversion-stabilization 1) +(twotemp/verbosity 0) +(twotemp/collision-cross-section-for-park-correction 3e-21) +(twotemp/positivity_limit 0.2) +(twotemp/mass-diffusion #t) +(twotemp/translation-vibration-coupling #t) +(twotemp/dissociation-vibration-coupling #t) +(twotemp/time-marching? #f) +(twotemp/pseudo1t? #f) +(twotemp/amg-stabilization 0) +(twotemp/scheme 1) +(twotemp/amg-method 0) +(twotemp/cycle-type 0) +(twotemp/amg-beta 0.7) +(twotemp/amg-alpha 0.1) +(twotemp/relax 0.8) +(twotemp/solve? #t) +(cpld/pfar/verbose? #f) +(cpld/pfar/emulate-pressure-outlet? #t) +(cpld/pfar/tangency-correction-tol 0.05) +(cpld/pfar/tangency-correction? #t) +(cpld/pfar/first-order? #f) +(cpld/pfar/type 0) +(cpld/rk2-enabled-t? #f) +(amg-c/amg-alpha-restore 0.1) +(recon/lim/filter/on-restore? #f) +(cpld/divergence-prevention-relaxation-restore 0.1) +(cpld/divergence-prevention-active-restore? #f) +(cpld/hsn/adaptive-cfl-reduction-max 0.5) +(cpld/hsn/adaptive-cfl-reduction-min 1.) +(cpld/hsn/adaptive-cfl-limit-max 0.5) +(cpld/hsn/adaptive-cfl-limit-min 1.) +(cpld/hsn/adaptive-cfl-reduction? #f) +(cpld/hsn/adaptive-grad-reduction-max 0.5) +(cpld/hsn/adaptive-grad-reduction-min 1.) +(cpld/hsn/adaptive-grad-reduction? #f) +(cpld/hsn/adaptive-laplace-dissipation-coef-max 0.5) +(cpld/hsn/adaptive-laplace-dissipation-coef-min 0.) +(cpld/hsn/adaptive-laplace-dissipation? #f) +(cpld/hsn/normal-mach-sensor-max 5.) +(cpld/hsn/normal-mach-sensor-min 1.) +(cpld/hsn/normal-mach-relax-factor 1.) +(cpld/hsn/normal-mach-extra-layers 0) +(cpld/hsn/normal-mach-coarse-type 0) +(cpld/hsn/normal-mach-debug? #f) +(cpld/hsn/normal-mach? #f) +(cpld/hsn/grad-reduction 0.5) +(cpld/hsn/reduced-grad? #f) +(cpld/hsn/cfl-reduction 0.5) +(cpld/hsn/cfl-limit 2.) +(cpld/hsn/reduced-cfl? #f) +(cpld/hsn/laplace-dissipation-coef 0.) +(cpld/hsn/laplace-dissipation? #f) +(cpld/hsn/sensor-extra-layers 1) +(cpld/hsn/sensor-relax-factor 0.7) +(cpld/hsn/sensor-max 0.5) +(cpld/hsn/sensor-min 0.25) +(cpld/hsn/sensor-type 0) +(cpld/hsn/flux-recompute-face-thermodynamic-state? #f) +(cpld/hsn/high-speed-numerics-type 5) +(cpld/hsn/visualize? #f) +(cpld/hsn/enabled? #f) +(cpld/temp-high-speed-numerics-enabled? #f) +(cpld/temp-hs-roe-entropyfix-coeff 0.3) +(cpld/temp-hs-roe-entropyfix-local-mach-scale? #f) +(cpld/temp-hs-roe-critical-average? #f) +(cpld/temp-hs-roe-flux-method? #f) (cpld/reuse-linearization/ts-iteration 0) (cpld/reuse-linearization/flow-time -1.) (cpld/reuse-linearization/grid-id -1) @@ -5696,27 +7452,43 @@ (inviscid-flux-new? #f) (dual-time/use-transient-scaling? #t) (dual-time/use-prec? #t) +(fixed-periodic/periodic-total-time-steps 10) +(fixed-periodic/periods-run 1) +(fixed-periodic/periodic-time-step-size 0.1) +(fixed-periodic/time-steps-period 10) +(fixed-periodic/period-or-freq-value 1.) +(fixed-periodic/period-or-freq "Period") +(fixed-periodic/is-fixed-periodic? #f) (pressure/output-dpdt? #t) (use-mkl-fft 2) (residual-verbosity 0) (flow-warnings? #t) (limiter-warnings? #t) (precondition? #t) -(time-step 0) +(time-step 2) (max-courant-number/explicit 1.) (time-step-specification? #t) (restart-1st-order-in-time? #f) -(physical-time-step-m1 1.) -(physical-time-step 1.) +(physical-time-step-m1 0.001) +(physical-time-step 0.001) (courant-number/implicit 5.) (courant-number/explicit 1.) (matching-tolerance 0.05) (pemfc/liquid-k 0.6) +(material/check-different-material-at-interior? #t) +(battery-short-resistance/patch 1e+20) +(battery/fmu-loaded? #f) +(battery/msmd-model-on? #f) +(battery/show-single-battery? #f) +(battery/beta-feature? #f) +(battery/model-loaded? #f) +(battery/model0-loaded? #f) +(sofc_01/sofc-loaded? #f) (pemfc-model-loaded? #f) (resolved-fc-model-loaded? #f) (user-defined-stop? #f) (max-flow-time -1) -(flow-time 0) +(flow-time 0.002) (smooth-mesh/edge-nodes? #t) (smooth-mesh/boundary-nodes? #f) (smooth-mesh/method "quality based") @@ -5727,6 +7499,16 @@ (smooth-mesh/relax 0.1) (smooth-mesh/niter 4) (draw/domain/list ()) +(spark/r145? #f) +(pdf/dpm-h-source-r145? #f) +(dpm/film-formulation-r15? #f) +(les-wmles-smnsomg/version-r145? #f) +(dpm/consistent-tke-ted-clipping? #t) +(dpm/dynamic-les-treatment-pre192? #f) +(dpm/sbes-treatment-pre192? #f) +(dpm/always-move-away-from-face? #f) +(mesh/use-pre-r19-metrics? #f) +(les-dynamic-skip-exchange-r17? #f) (context/full-ui/show-dump? #t) (context/full-ui/visible? #f) (context/ui/mode-selector-visible? #f) @@ -5736,25 +7518,29 @@ (context/multiple-contexts? #t) (context/auto-detect? #f) (context/current-r17+ ("DPM: Unsteady" "default")) -(context/map-r17+ (("default" 0 (lambda () #t) (lambda () #f) #f) ("update derivatives after flow-solve" 90 (lambda () (rpgetvar 'context/auto-detect?)) (lambda () #t) (mom/update-derivatives-after-flow-solve? #t boolean #f #t #t)) ("pseudo-transient IF (single-phase) PBNS steady" 100 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))))) (lambda () #t) (pseudo-transient-formulation? #t boolean #f #t #f ("Pseudo transient formulation: ~a" (("enabled" . #t) ("disabled" . #f))))) ("NOT pseudo-transient IF (single-phase) transient" 120 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-unsteady? (%rp-config #f))))) (lambda () #t) (pseudo-transient-formulation? #f boolean #f #f #f ("Pseudo transient formulation: ~a" (("enabled" . #t) ("disabled" . #f))))) ("compr. enh. num. + press.-cpld. F cycle IF (single-phase) PBNS" 130 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))))) (lambda () #t) (compress/enhanced-numerics/on? #t boolean #f #t #t) (pressure-coupled/cycle-type 3 integer #f 3 3 ("Multigrid cycle type for the pressure coupled: ~a" ((0 . "Flexible") (1 . "V-Cycle") (2 . "W-Cycle") (3 . "F-Cycle"))))) ("HOTR IF (single-phase) except PBNS Transient" 140 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (not (and (cdr (assq 'rp-seg? (%rp-config #f))) (cdr (assq 'rp-unsteady? (%rp-config #f))))))) (lambda () #t) (recon/relax/relax? #t boolean #f #t #f ("HOTR: ~a" (("enabled" . #t) ("disabled" . #f))))) ("coupled IF (single-phase) PBNS steady" 150 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))))) (lambda () #t) (density/relax 0.5 real #f 0.5 1 ("Under-Relaxation Factor for density ~a")) (density/pseudo-relax 0.5 real #f 0.5 1.) (flow/scheme 24 integer #f 24 20 ("P-V coupling method changed: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23))))) ("simpleC IF (single-phase) PBNS transient" 170 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (cdr (assq 'rp-unsteady? (%rp-config #f))))) (lambda () #t) (pressure/relax 0.8 real #f 0.8 0.3 ("Under-Relaxation Factor for pressure: ~a")) (mom/relax 0.7 real #f 0.7 0.7 ("Under-Relaxation Factor for momentum: ~a")) (simplec/skew-iter 1 integer #f 1 0 ("Skewness Correction for SIMPLEC ~a")) (density/relax 1 real #f 1 1 ("Under-Relaxation Factor for density ~a")) (density/pseudo-relax 1 real #f 1 1.) (pressure-coupled/courant-number 10000000000. real #f 10000000000. 200. ("CFL number for the coupled flow equation system: ~a")) (flow/scheme 21 integer #f 21 20 ("P-V coupling method changed: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23))))) ("impl. Cou. num. IF (single-phase) DBNS incompressible" 180 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (not (cdr (assq 'rp-seg? (%rp-config #f)))) (not (is-compressible?)))) (lambda () #t) (courant-number/implicit 1000 real #f 1000 5. ("CFL value for the implicit dbns coupled solver: ~a"))) ("impl. Cou. num. IF (single-phase) DBNS transient compressible" 200 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (not (cdr (assq 'rp-seg? (%rp-config #f)))) (cdr (assq 'rp-unsteady? (%rp-config #f))) (is-compressible?))) (lambda () #t) (courant-number/implicit 50 real #f 50 5. ("CFL value for the implicit dbns coupled solver: ~a"))) ("PRESTO! IF (single-phase) PBNS steady buoyant OR swirl" 210 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))) (or (and (cdr (assq 'rp-axi? (%rp-config #f))) (cdr (assq 'sg-swirl? (%rp-config #f)))) (have-boussinesq?)))) (lambda () #t) (pressure/scheme 14 integer #f 14 12 ("Spatial discretization for pressure: ~a" (("First Order Upwind" . 0) ("Second Order Upwind" . 1) ("Power Law" . 2) ("Central Differencing" . 3) ("QUICK" . 4) ("Modified HRIC" . 5) ("Third-Order MUSCL" . 6) ("Bounded Central Differencing" . 7) ("CICSAM" . 8) ("Low Diffusion Second Order" . 9) ("Standard" . 10) ("Linear" . 11) ("Second Order" . 12) ("Body Force Weighted" . 13) ("PRESTO!" . 14) ("Continuity Based" . 15) ("Geo-Reconstruct" . 16) ("Donor-Acceptor" . 17) ("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Phase Coupled SIMPLE" . 23) ("Coupled" . 24) ("Fractional Step" . 25) ("Compressive" . 28) ("BGM" . 29))))) ("PRESTO! IF sing.-eq. multi-phase" 230 (lambda () (and (rpgetvar 'context/auto-detect?) (let ((sgm (cdr (assq 'sg-mphase? (%rp-config #f))))) (and sgm (or (eq? 'drift-flux sgm) (eq? 'homogeneous sgm) (eq? 'vof sgm)))))) (lambda () #t) (pressure/scheme 14 integer #f 14 12 ("Spatial discretization for pressure: ~a" (("First Order Upwind" . 0) ("Second Order Upwind" . 1) ("Power Law" . 2) ("Central Differencing" . 3) ("QUICK" . 4) ("Modified HRIC" . 5) ("Third-Order MUSCL" . 6) ("Bounded Central Differencing" . 7) ("CICSAM" . 8) ("Low Diffusion Second Order" . 9) ("Standard" . 10) ("Linear" . 11) ("Second Order" . 12) ("Body Force Weighted" . 13) ("PRESTO!" . 14) ("Continuity Based" . 15) ("Geo-Reconstruct" . 16) ("Donor-Acceptor" . 17) ("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Phase Coupled SIMPLE" . 23) ("Coupled" . 24) ("Fractional Step" . 25) ("Compressive" . 28) ("BGM" . 29))))) ("Flow: transient; DPM: coupled" 10 (lambda () (and (cdr (assq 'rp-unsteady? (%rp-config #f))) (cdr (assq 'sg-dpm? (%rp-config #f))))) (lambda () (or (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?))) (dpm/sources-every-flow-iteration? #t boolean #f #t #f ("Update DPM source terms every flow iteration?: ~a" (("enabled" . #t) ("disabled" . #f))))) ("Flow: transient; DPM: unsteady, coupled" 12 (lambda () (and (cdr (assq 'sg-dpm? (%rp-config #f))) (and (cdr (assq 'rp-unsteady? (%rp-config #f))) (rpgetvar 'dpm/unsteady-tracking?)))) (lambda () (or (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?))) (dpm/relax 0.9 real #f 0.9 0.5 ("DPM source terms under-relaxation factor: ~a"))) ("DPM: Unsteady" 14 (lambda () (rpgetvar 'dpm/unsteady-tracking?)) (lambda () (or (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?))) (dpm/max-steps 500 integer #f 500 50000 ("DPM maximum number of steps: ~a"))) ("VOF: Implicit and Steady State" 16 (lambda () (and (eq? (cdr (assq 'sg-mphase? (%rp-config #f))) 'vof) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))) (eqv? (rpgetvar 'mp/scheme-type) 0))) (lambda () #t) (flow/scheme 24 integer #f 24 20 ("P-V coupling method changed: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23)))) (pseudo-transient-formulation? #t boolean #f #t #f ("Pseudo transient for steady state VOF: ~a" (("enabled" . #t) ("disabled" . #f))))) ("Wall Film: EWF with DPM collection" 18 (lambda () (if (and (rp-3d?) (cdr (assq 'rp-wallfilm? (%rp-config #f)))) (and (cdr (assq 'sg-wallfilm? (%rp-config #f))) (dpm-bcs-available?)) #f)) (lambda () (if (and (rp-3d?) (cdr (assq 'rp-wallfilm? (%rp-config #f)))) (let* ((film-vars (rpgetvar 'wall-film/model-parameters)) (dpm-collection? (cdr (assq 'dpm-collection? film-vars))) (dpm-splashing? (cdr (assq 'dpm-splashing? film-vars))) (sg-wallfilm? (cdr (assq 'sg-wallfilm? (%rp-config #f))))) (or (not sg-wallfilm?) (and dpm-collection? dpm-splashing?))) #f)) (dpm/orourke-splash-fraction? #f boolean #f #f #t ("O'Rourke splash fraction formulation: ~a" (("enabled" . #t) ("disabled" . #f)))) (dpm/splash-pdf-tail-limiting? #f boolean #f #f #t ("Splash PDF distribution tail limiting: ~a" (("enabled" . #t) ("disabled" . #f))))) ("MP: NITA defaults" 20 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))))) (lambda () #f) (piso/neighbor-option 1 integer #f 1 0 ("Piso neighbor option changed: ~a")) (piso/neighbor-add-option 1 integer #f 1 0 ("Piso neighbor add option changed: ~a")) (piso/neighbor-iter 2 integer #f 2 1 ("Piso neighbor iterations changed: ~a")) (mp/vof-piso-corrector? #t boolean #f #t #f ("Multiphase Piso vof corrector changed: ~a" (("enabled" . #t) ("disabled" . #f))))) ("MP: NITA defaults r182a" 22 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))))) (lambda () #f) (pressure/max-iter 0 integer #f 0 10 ("Pressure skewness correction changed: ~a"))) ("MP: NITA defaults r190" 26 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))) (eqv? (rpgetvar 'mp/scheme-type) 0))) (lambda () #f) (mp/max-iter 1 integer #f 1 5 ("Max. no. of MP NITA sub iterations changed: ~a"))))))) +(context/map-r17+ (("default" 0 (lambda () #t) (lambda () #f) #f) ("update derivatives after flow-solve" 90 (lambda () (rpgetvar 'context/auto-detect?)) (lambda () #t) (mom/update-derivatives-after-flow-solve? #t boolean #f #t #t)) ("pseudo-transient IF (single-phase) PBNS steady" 100 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))))) (lambda () #t) (pseudo-transient-formulation? #t boolean #f #t #f ("Pseudo transient formulation: ~a" (("enabled" . #t) ("disabled" . #f))))) ("NOT pseudo-transient IF (single-phase) transient" 120 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-unsteady? (%rp-config #f))))) (lambda () #t) (pseudo-transient-formulation? #f boolean #f #f #f ("Pseudo transient formulation: ~a" (("enabled" . #t) ("disabled" . #f))))) ("compr. enh. num. + press.-cpld. F cycle IF (single-phase) PBNS" 130 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))))) (lambda () #t) (compress/enhanced-numerics/on? #t boolean #f #t #t) (pressure-coupled/cycle-type 3 integer #f 3 3 ("Multigrid cycle type for the pressure coupled: ~a" ((0 . "Flexible") (1 . "V-Cycle") (2 . "W-Cycle") (3 . "F-Cycle"))))) ("HOTR IF (single-phase) except PBNS Transient" 140 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (not (and (cdr (assq 'rp-seg? (%rp-config #f))) (cdr (assq 'rp-unsteady? (%rp-config #f))))))) (lambda () #t) (recon/relax/relax? #t boolean #f #t #f ("HOTR: ~a" (("enabled" . #t) ("disabled" . #f))))) ("coupled IF (single-phase) PBNS steady" 150 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))))) (lambda () #t) (density/relax 0.5 real #f 0.5 1 ("Under-Relaxation Factor for density ~a")) (density/pseudo-relax 0.5 real #f 0.5 1.) (flow/scheme 24 integer #f 24 20 ("P-V coupling method changed: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23))))) ("simpleC IF (single-phase) PBNS transient" 170 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (cdr (assq 'rp-unsteady? (%rp-config #f))))) (lambda () #t) (pressure/relax 0.8 real #f 0.8 0.3 ("Under-Relaxation Factor for pressure: ~a")) (mom/relax 0.7 real #f 0.7 0.7 ("Under-Relaxation Factor for momentum: ~a")) (simplec/skew-iter 1 integer #f 1 0 ("Skewness Correction for SIMPLEC ~a")) (density/relax 1 real #f 1 1 ("Under-Relaxation Factor for density ~a")) (density/pseudo-relax 1 real #f 1 1.) (pressure-coupled/courant-number 10000000000. real #f 10000000000. 200. ("CFL number for the coupled flow equation system: ~a")) (flow/scheme 21 integer #f 21 20 ("P-V coupling method changed: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23))))) ("impl. Cou. num. IF (single-phase) DBNS incompressible" 180 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (not (cdr (assq 'rp-seg? (%rp-config #f)))) (not (is-compressible?)))) (lambda () #t) (courant-number/implicit 1000 real #f 1000 5. ("CFL value for the implicit dbns coupled solver: ~a"))) ("impl. Cou. num. IF (single-phase) DBNS transient compressible" 200 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (not (cdr (assq 'rp-seg? (%rp-config #f)))) (cdr (assq 'rp-unsteady? (%rp-config #f))) (is-compressible?))) (lambda () #t) (courant-number/implicit 50 real #f 50 5. ("CFL value for the implicit dbns coupled solver: ~a"))) ("PRESTO! IF (single-phase) PBNS steady buoyant OR swirl" 210 (lambda () (and (rpgetvar 'context/auto-detect?) (not (cdr (assq 'sg-mphase? (%rp-config #f)))) (cdr (assq 'rp-seg? (%rp-config #f))) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))) (or (and (cdr (assq 'rp-axi? (%rp-config #f))) (cdr (assq 'sg-swirl? (%rp-config #f)))) (have-boussinesq?)))) (lambda () #t) (pressure/scheme 14 integer #f 14 12 ("Spatial discretization for pressure: ~a" (("First Order Upwind" . 0) ("Second Order Upwind" . 1) ("Power Law" . 2) ("Central Differencing" . 3) ("QUICK" . 4) ("Modified HRIC" . 5) ("Third-Order MUSCL" . 6) ("Bounded Central Differencing" . 7) ("CICSAM" . 8) ("Low Diffusion Second Order" . 9) ("Standard" . 10) ("Linear" . 11) ("Second Order" . 12) ("Body Force Weighted" . 13) ("PRESTO!" . 14) ("Continuity Based" . 15) ("Geo-Reconstruct" . 16) ("Donor-Acceptor" . 17) ("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Phase Coupled SIMPLE" . 23) ("Coupled" . 24) ("Fractional Step" . 25) ("Compressive" . 28) ("BGM" . 29))))) ("PRESTO! IF sing.-eq. multi-phase" 230 (lambda () (and (rpgetvar 'context/auto-detect?) (let ((sgm (cdr (assq 'sg-mphase? (%rp-config #f))))) (and sgm (or (eq? 'drift-flux sgm) (eq? 'homogeneous sgm) (eq? 'vof sgm)))))) (lambda () #t) (pressure/scheme 14 integer #f 14 12 ("Spatial discretization for pressure: ~a" (("First Order Upwind" . 0) ("Second Order Upwind" . 1) ("Power Law" . 2) ("Central Differencing" . 3) ("QUICK" . 4) ("Modified HRIC" . 5) ("Third-Order MUSCL" . 6) ("Bounded Central Differencing" . 7) ("CICSAM" . 8) ("Low Diffusion Second Order" . 9) ("Standard" . 10) ("Linear" . 11) ("Second Order" . 12) ("Body Force Weighted" . 13) ("PRESTO!" . 14) ("Continuity Based" . 15) ("Geo-Reconstruct" . 16) ("Donor-Acceptor" . 17) ("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Phase Coupled SIMPLE" . 23) ("Coupled" . 24) ("Fractional Step" . 25) ("Compressive" . 28) ("BGM" . 29))))) ("Flow: transient; DPM: coupled" 10 (lambda () (and (cdr (assq 'rp-unsteady? (%rp-config #f))) (cdr (assq 'sg-dpm? (%rp-config #f))))) (lambda () (or (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?))) (dpm/sources-every-flow-iteration? #t boolean #f #t #f ("Update DPM source terms every flow iteration?: ~a" (("enabled" . #t) ("disabled" . #f))))) ("Flow: transient; DPM: unsteady, coupled" 12 (lambda () (and (cdr (assq 'sg-dpm? (%rp-config #f))) (and (cdr (assq 'rp-unsteady? (%rp-config #f))) (rpgetvar 'dpm/unsteady-tracking?)))) (lambda () (or (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?))) (dpm/relax 0.9 real #f 0.9 0.5 ("DPM source terms under-relaxation factor: ~a"))) ("DPM: Unsteady" 14 (lambda () (rpgetvar 'dpm/unsteady-tracking?)) (lambda () (or (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?))) (dpm/max-steps 500 integer #f 500 50000 ("DPM maximum number of steps: ~a"))) ("VOF: Implicit and Steady State" 16 (lambda () (and (eq? (cdr (assq 'sg-mphase? (%rp-config #f))) 'vof) (not (cdr (assq 'rp-unsteady? (%rp-config #f)))) (eqv? (rpgetvar 'mp/scheme-type) 0))) (lambda () #t) (flow/scheme 24 integer #f 24 20 ("P-V coupling method changed: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23)))) (pseudo-transient-formulation? #t boolean #f #t #f ("Pseudo transient for steady state VOF: ~a" (("enabled" . #t) ("disabled" . #f))))) ("Wall Film: EWF with DPM collection" 18 (lambda () (if (and (rp-3d?) (cdr (assq 'rp-wallfilm? (%rp-config #f)))) (and (cdr (assq 'sg-wallfilm? (%rp-config #f))) (dpm-bcs-available?)) #f)) (lambda () (if (and (rp-3d?) (cdr (assq 'rp-wallfilm? (%rp-config #f)))) (let* ((film-vars (rpgetvar 'wall-film/model-parameters)) (dpm-collection? (cdr (assq 'dpm-collection? film-vars))) (dpm-splashing? (cdr (assq 'dpm-splashing? film-vars))) (sg-wallfilm? (cdr (assq 'sg-wallfilm? (%rp-config #f))))) (or (not sg-wallfilm?) (and dpm-collection? dpm-splashing?))) #f)) (dpm/orourke-splash-fraction? #f boolean #f #f #t ("O'Rourke splash fraction formulation: ~a" (("enabled" . #t) ("disabled" . #f)))) (dpm/splash-pdf-tail-limiting? #f boolean #f #f #t ("Splash PDF distribution tail limiting: ~a" (("enabled" . #t) ("disabled" . #f))))) ("MP: NITA defaults" 20 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))))) (lambda () #f) (piso/neighbor-option 1 integer #f 1 0 ("Piso neighbor option changed: ~a")) (piso/neighbor-add-option 1 integer #f 1 0 ("Piso neighbor add option changed: ~a")) (piso/neighbor-iter 2 integer #f 2 1 ("Piso neighbor iterations changed: ~a")) (mp/vof-piso-corrector? #t boolean #f #t #f ("Multiphase Piso vof corrector changed: ~a" (("enabled" . #t) ("disabled" . #f))))) ("MP: NITA defaults r182a" 22 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))))) (lambda () #f) (pressure/max-iter 0 integer #f 0 10 ("Pressure skewness correction changed: ~a"))) ("MP: NITA defaults r190" 26 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))) (eqv? (rpgetvar 'mp/scheme-type) 0))) (lambda () #f) (mp/max-iter 1 integer #f 1 5 ("Max. no. of MP NITA sub iterations changed: ~a"))) ("turbulence models based on epsilon are first-order in space" 95 (lambda () (let* ((rpconf (%rp-config #f)) (sgmphs (cdr (assq 'sg-mphase? rpconf)))) (or (eq? sgmphs 'multi-fluid) (eq? sgmphs 'drift-flux) (eq? sgmphs 'homogeneous) (cdr (assq 'rp-ke? rpconf)) (cdr (assq 'rp-v2f? rpconf)) (and (cdr (assq 'rp-des? rpconf)) (rpgetvar 'des-rke-on?)) (and (cdr (assq 'sg-rsm? rpconf)) (not (drsm-omega-or-bsl-based?)) (rpgetvar 'drsm-tke-solve?))))) (lambda () #t) (k/scheme 0 integer #f 0 1 ("Changing Discretization Scheme for Turbulent Kinetic Energy: ~a" (("First Order Upwind" . 0) ("Second Order Upwind" . 1) ("Power Law" . 2) ("Central Differencing" . 3) ("QUICK" . 4) ("Modified HRIC" . 5) ("Third-Order MUSCL" . 6) ("Bounded Central Differencing" . 7) ("CICSAM" . 8) ("Low Diffusion Second Order" . 9) ("Standard" . 10) ("Linear" . 11) ("Second Order" . 12) ("Body Force Weighted" . 13) ("PRESTO!" . 14) ("Continuity Based" . 15) ("Geo-Reconstruct" . 16) ("Donor-Acceptor" . 17) ("Modified Body Force Weighted" . 18) ("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Phase Coupled SIMPLE" . 23) ("Coupled" . 24) ("Fractional Step" . 25) ("Compressive" . 28) ("BGM" . 29) ("Phase Coupled PISO" . 30))))) ("RSM omega-based turbulence models are first-order in space" 97 (lambda () (let* ((rpconf (%rp-config #f)) (sgmphs (cdr (assq 'sg-mphase? rpconf)))) (or (eq? sgmphs 'multi-fluid) (eq? sgmphs 'drift-flux) (eq? sgmphs 'homogeneous) (and (cdr (assq 'sg-rsm? rpconf)) (drsm-omega-or-bsl-based?))))) (lambda () #t) (omega/scheme 0 integer #f 0 1 ("Changing Discretization Scheme for Specific Dissipation Rate: ~a" (("First Order Upwind" . 0) ("Second Order Upwind" . 1) ("Power Law" . 2) ("Central Differencing" . 3) ("QUICK" . 4) ("Modified HRIC" . 5) ("Third-Order MUSCL" . 6) ("Bounded Central Differencing" . 7) ("CICSAM" . 8) ("Low Diffusion Second Order" . 9) ("Standard" . 10) ("Linear" . 11) ("Second Order" . 12) ("Body Force Weighted" . 13) ("PRESTO!" . 14) ("Continuity Based" . 15) ("Geo-Reconstruct" . 16) ("Donor-Acceptor" . 17) ("Modified Body Force Weighted" . 18) ("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Phase Coupled SIMPLE" . 23) ("Coupled" . 24) ("Fractional Step" . 25) ("Compressive" . 28) ("BGM" . 29) ("Phase Coupled PISO" . 30))))) ("DPM: barycentric interpolation of density and viscosity in multi-phase context" 100 (lambda () (cdr (assq 'sg-mphase? (%rp-config #f)))) (lambda () (and (rpgetvar 'dpm/variable-interpolation/barycentric?) (or (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?)))) (density/interpolate #t boolean #f #t #f ("Spatial interpolation for density: ~a" (("enabled" . #t) ("disabled" . #f)))) (laminar-viscosity/interpolate #t boolean #f #t #f ("Spatial interpolation for laminar viscosity: ~a" (("enabled" . #t) ("disabled" . #f))))) ("MP: NITA: override mp/max-iter from 'defaults r190' with higher number if mp/vof-piso-corrector is Off" 30 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))) (eqv? (rpgetvar 'mp/scheme-type) 0) (not (rpgetvar 'mp/vof-piso-corrector?)))) (lambda () #f) (mp/max-iter 5 integer #f 5 5 ("Max. no. of MP NITA sub iterations: ~a"))) ("MP: NITA defaults r192" 27 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 23) (cdr (assq 'sg-noniterative? (%rp-config #f))))) (lambda () #f) (pressure/explicit-relax 0.5 real #f 0.5 1 ("Explicit Relaxation Factor for Pressure: ~a")) (mom/explicit-relax 0.7 real #f 0.7 1. ("Explicit Relaxation Factor for Momentum: ~a"))) ("DPM with NITA" 24 (lambda () (cdr (assq 'sg-noniterative? (%rp-config #f)))) (lambda () (and (cdr (assq 'sg-dpm? (%rp-config #f))) (dpm-bcs-available?))) (dpm/relax 1. real #f 1. 0.5 ("DPM source term under-relaxation factor: ~a"))) ("Aggressive NITA" 240 (lambda () (and (cdr (assq 'sg-noniterative? (%rp-config #f))) (rpgetvar 'nita/aggressive?) (not (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid)))) (lambda () #f) (pressure/max-iter 0 integer #f 0 10 ("Max. no. of Pressure NITA sub iterations: ~a")) (mom/max-iter 1 integer #f 1 5 ("Max. no. of Momentum NITA sub iterations: ~a")) (temperature/max-iter 1 integer #f 1 5 ("Max. no. of Temperature NITA sub iterations: ~a")) (enthalpy/max-iter 1 integer #f 1 5 ("Max. no. of Enthalpy sub iterations: ~a")) (mp/max-iter 1 integer #f 1 5 ("Max. no. of Multiphase NITA sub iterations: ~a")) (potential/max-iter 1 integer #f 1 5 ("Max. no. of Potential NITA sub iterations: ~a")) (dqmom-iem/max-iter 1 integer #f 1 5 ("Max. no. of DQMOM NITA sub iterations: ~a")) (granular-temperature/max-iter 1 integer #f 1 5 ("Max. no. of Granular-Temperature NITA sub iterations: ~a")) (w-swirl/max-iter 1 integer #f 1 5 ("Max. no. of Swirl NITA sub iterations: ~a")) (nut/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(NU) NITA sub iterations: ~a")) (k/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(K) NITA sub iterations: ~a")) (epsilon/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Epsilon) NITA sub iterations: ~a")) (v2/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(V2) NITA sub iterations: ~a")) (f/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(f) NITA sub iterations: ~a")) (kl/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(kl) NITA sub iterations: ~a")) (omega/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Omega) NITA sub iterations: ~a")) (intermit/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Intermit) NITA sub iterations: ~a")) (retheta/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(retheta) NITA sub iterations: ~a")) (drsm/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(drsm) NITA sub iterations: ~a")) (fmean/max-iter 1 integer #f 1 5 ("Max. no. of fmean NITA sub iterations: ~a")) (fmean2/max-iter 1 integer #f 1 5 ("Max. no. of fmean2 NITA sub iterations: ~a")) (fvar/max-iter 1 integer #f 1 5 ("Max. no. of fvar NITA sub iterations: ~a")) (fvar2/max-iter 1 integer #f 1 5 ("Max. no. of fvar2 NITA sub iterations: ~a")) (premixc/max-iter 1 integer #f 1 5 ("Max. no. of Premix NITA sub iterations: ~a")) (premix-g-eqn/max-iter 1 integer #f 1 5 ("Max. no. of Premix-G-Eq NITA sub iterations: ~a")) (premix-g-var/max-iter 1 integer #f 1 5 ("Max. no. of Premix-G-Var NITA sub iterations: ~a")) (pdftss/max-iter 1 integer #f 1 5 ("Max. no. of PDF-tss NITA sub iterations: ~a")) (pull/max-iter 1 integer #f 1 5 ("Max. no. of Pollutant NITA sub iterations: ~a")) (soot-mom/max-iter 1 integer #f 1 5 ("Max. no. of Soots NITA sub iterations: ~a")) (tvar/max-iter 1 integer #f 1 5 ("Max. no. of Tvar NITA sub iterations: ~a")) (pressure/amg-alpha 0.01 real #f 0.01 0.1 ("Multigrid termination for the pressure: ~a")) (pressure/cycle-type 3 integer #f 3 1 ("Multigrid cycle type for the pressure: ~a" ((0 . "Flexible") (1 . "V-Cycle") (2 . "W-Cycle") (3 . "F-Cycle")))) (flow/scheme 25 integer #f 25 20 ("Flow Scheme is: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Fractional Step" . 25) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23) ("Phase Coupled PISO" . 30)))) (nita/flux/extrapolate? #t boolean #f #t #f ("Mass flux extrapolation: ~a" (("enabled" . #t) ("disabled" . #f))))) ("constant density NITA" 241 (lambda () (and (cdr (assq 'sg-noniterative? (%rp-config #f))) (eqv? (rpgetvar 'nita/single-phase/hybrid/option) 1) (not (cdr (assq 'sg-mphase? (%rp-config #f)))))) (lambda () #t) (pressure/max-iter 0 integer #f 0 10 ("Max. no. of Pressure NITA sub iterations: ~a")) (mom/max-iter 1 integer #f 1 5 ("Max. no. of Momentum NITA sub iterations: ~a")) (temperature/max-iter 1 integer #f 1 5 ("Max. no. of Temperature NITA sub iterations: ~a")) (enthalpy/max-iter 1 integer #f 1 5 ("Max. no. of Enthalpy sub iterations: ~a")) (w-swirl/max-iter 1 integer #f 1 5 ("Max. no. of Swirl NITA sub iterations: ~a")) (nut/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(NU) NITA sub iterations: ~a")) (k/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(K) NITA sub iterations: ~a")) (epsilon/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Epsilon) NITA sub iterations: ~a")) (v2/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(V2) NITA sub iterations: ~a")) (f/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(f) NITA sub iterations: ~a")) (kl/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(kl) NITA sub iterations: ~a")) (omega/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Omega) NITA sub iterations: ~a")) (intermit/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Intermit) NITA sub iterations: ~a")) (retheta/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(retheta) NITA sub iterations: ~a")) (drsm/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(drsm) NITA sub iterations: ~a")) (fmean/max-iter 1 integer #f 1 5 ("Max. no. of fmean NITA sub iterations: ~a")) (fmean2/max-iter 1 integer #f 1 5 ("Max. no. of fmean2 NITA sub iterations: ~a")) (fvar/max-iter 1 integer #f 1 5 ("Max. no. of fvar NITA sub iterations: ~a")) (fvar2/max-iter 1 integer #f 1 5 ("Max. no. of fvar2 NITA sub iterations: ~a")) (premixc/max-iter 1 integer #f 1 5 ("Max. no. of Premix NITA sub iterations: ~a")) (premix-g-eqn/max-iter 1 integer #f 1 5 ("Max. no. of Premix-G-Eq NITA sub iterations: ~a")) (premix-g-var/max-iter 1 integer #f 1 5 ("Max. no. of Premix-G-Var NITA sub iterations: ~a")) (pdftss/max-iter 1 integer #f 1 5 ("Max. no. of PDF-tss NITA sub iterations: ~a")) (pull/max-iter 1 integer #f 1 5 ("Max. no. of Pollutant NITA sub iterations: ~a")) (soot-mom/max-iter 1 integer #f 1 5 ("Max. no. of Soots NITA sub iterations: ~a")) (tvar/max-iter 1 integer #f 1 5 ("Max. no. of Tvar NITA sub iterations: ~a")) (pressure/cycle-type 3 integer #f 3 1 ("Multigrid cycle type for the pressure: ~a" ((0 . "Flexible") (1 . "V-Cycle") (2 . "W-Cycle") (3 . "F-Cycle")))) (pressure/amg-alpha 0.01 real #f 0.01 0.1 ("Multigrid termination for the pressure: ~a")) (mom/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for momentum: ~a")) (pressure/residual-tolerance 0.01 real #f 0.01 0.0001 ("Residual-tolerance for pressure: ~a")) (temperature/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for temperature: ~a")) (enthalpy/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for enthalpy: ~a")) (w-swirl/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for w-swirl: ~a")) (nut/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (nu): ~a")) (k/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (k): ~a")) (epsilon/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (epsilon): ~a")) (v2/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (V2): ~a")) (f/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (f): ~a")) (kl/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (kl): ~a")) (omega/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (Omega): ~a")) (intermit/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (Intermit): ~a")) (retheta/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (retheta): ~a")) (drsm/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (drsm): ~a")) (flow/scheme 25 integer #f 25 20 ("Flow Scheme is: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Fractional Step" . 25) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23) ("Phase Coupled PISO" . 30)))) (nita/flux/extrapolate? #t boolean #f #t #f ("Mass flux extrapolation: ~a" (("enabled" . #t) ("disabled" . #f)))) (nita/residual-tolerance/iter 2 integer #f 2 1 ("Number of iterations with residual-tolerance: ~a")) (nita/outer-iter 2 integer #f 2 1 ("Max. no. of outer iterations: ~a")) (mom/relax 1 real #f 1 0.7 ("Under-relaxation for momentum ~a")) (pressure/relax 1 real #f 1 0.3 ("Under-relaxation for pressure ~a")) (w-swirl/relax 1 real #f 1 0.9 ("Under-relaxation for swirl ~a")) (nut/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(nut) ~a")) (k/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(k) ~a")) (epsilon/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(epsilon) ~a")) (v2/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(v2) ~a")) (f/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(f) ~a")) (kl/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(kl) ~a")) (omega/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(omega) ~a")) (intermit/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(intermit) ~a")) (retheta/relax 1 real #f 1 0.8 ("Under-relaxation for turbulence(retheta) ~a")) (drsm/relax 1 real #f 1 0.5 ("Under-relaxation for turbulence(dtrsm) ~a"))) ("variable density NITA" 242 (lambda () (and (cdr (assq 'sg-noniterative? (%rp-config #f))) (eqv? (rpgetvar 'nita/single-phase/hybrid/option) 2) (not (cdr (assq 'sg-mphase? (%rp-config #f)))))) (lambda () #t) (pressure/max-iter 0 integer #f 0 10 ("Max. no. of Pressure NITA sub iterations: ~a")) (mom/max-iter 1 integer #f 1 5 ("Max. no. of Momentum NITA sub iterations: ~a")) (temperature/max-iter 1 integer #f 1 5 ("Max. no. of Temperature NITA sub iterations: ~a")) (enthalpy/max-iter 1 integer #f 1 5 ("Max. no. of Enthalpy sub iterations: ~a")) (species/max-iter (1) integer-list #f (1) (5) ("Max. no. of Species sub iterations: ~a")) (w-swirl/max-iter 1 integer #f 1 5 ("Max. no. of Swirl NITA sub iterations: ~a")) (nut/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(NU) NITA sub iterations: ~a")) (k/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(K) NITA sub iterations: ~a")) (epsilon/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Epsilon) NITA sub iterations: ~a")) (v2/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(V2) NITA sub iterations: ~a")) (f/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(f) NITA sub iterations: ~a")) (kl/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(kl) NITA sub iterations: ~a")) (omega/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Omega) NITA sub iterations: ~a")) (intermit/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(Intermit) NITA sub iterations: ~a")) (retheta/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(retheta) NITA sub iterations: ~a")) (drsm/max-iter 1 integer #f 1 5 ("Max. no. of Turbulence(drsm) NITA sub iterations: ~a")) (fmean/max-iter 1 integer #f 1 5 ("Max. no. of fmean NITA sub iterations: ~a")) (fmean2/max-iter 1 integer #f 1 5 ("Max. no. of fmean2 NITA sub iterations: ~a")) (fvar/max-iter 1 integer #f 1 5 ("Max. no. of fvar NITA sub iterations: ~a")) (fvar2/max-iter 1 integer #f 1 5 ("Max. no. of fvar2 NITA sub iterations: ~a")) (premixc/max-iter 1 integer #f 1 5 ("Max. no. of Premix NITA sub iterations: ~a")) (premix-g-eqn/max-iter 1 integer #f 1 5 ("Max. no. of Premix-G-Eq NITA sub iterations: ~a")) (premix-g-var/max-iter 1 integer #f 1 5 ("Max. no. of Premix-G-Var NITA sub iterations: ~a")) (pdftss/max-iter 1 integer #f 1 5 ("Max. no. of PDF-tss NITA sub iterations: ~a")) (pull/max-iter 1 integer #f 1 5 ("Max. no. of Pollutant NITA sub iterations: ~a")) (soot-mom/max-iter 1 integer #f 1 5 ("Max. no. of Soots NITA sub iterations: ~a")) (tvar/max-iter 1 integer #f 1 5 ("Max. no. of Tvar NITA sub iterations: ~a")) (pressure/cycle-type 3 integer #f 3 1 ("Multigrid cycle type for the pressure: ~a" ((0 . "Flexible") (1 . "V-Cycle") (2 . "W-Cycle") (3 . "F-Cycle")))) (pressure/amg-alpha 0.01 real #f 0.01 0.1 ("Multigrid termination for the pressure : ~a")) (mom/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for momentum: ~a")) (pressure/residual-tolerance 0.01 real #f 0.01 0.0001 ("Residual-tolerance for pressure: ~a")) (temperature/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for temperature: ~a")) (enthalpy/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for enthalpy: ~a")) (w-swirl/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for w-swirl: ~a")) (nut/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (nu): ~a")) (k/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (k): ~a")) (epsilon/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (epsilon): ~a")) (v2/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (V2): ~a")) (f/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (f): ~a")) (kl/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (kl): ~a")) (omega/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (Omega): ~a")) (intermit/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (Intermit): ~a")) (retheta/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (retheta): ~a")) (drsm/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for turbulence (drsm): ~a")) (species/residual-tolerance (0.001) real-list #f (0.001) (0.0001) ("Residual-tolerance for species: ~a")) (potential/residual-tolerance 0.001 real #f 0.001 1e-06 ("Residual-tolerance for potential: ~a")) (dqmom-iem/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for DQMOM: ~a")) (fmean/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for fmean: ~a")) (fmean2/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for fmean2: ~a")) (fvar/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for fvar: ~a")) (fvar2/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for fvar2: ~a")) (premixc/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for premixc: ~a")) (pdftss/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for pdftss: ~a")) (pull/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for pull: ~a")) (soot-mom/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for soot-mom: ~a")) (tvar/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for tvar: ~a")) (premix-g-eqn/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for premix-g-eqn: ~a")) (premix-g-var/residual-tolerance 0.001 real #f 0.001 0.0001 ("Residual-tolerance for premix-g-var: ~a")) (flow/scheme 25 integer #f 25 20 ("Flow Scheme is: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Fractional Step" . 25) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23) ("Phase Coupled PISO" . 30)))) (nita/flux/extrapolate? #f boolean #f #f #f ("Mass flux extrapolation: ~a" (("enabled" . #t) ("disabled" . #f)))) (nita/outer-iter 10 integer #f 10 1 ("Max. no. of outer iterations: ~a")) (models/equation-order 1 integer #f 1 0 ("Changing equation order ~a" (("Standard" . 0) ("Optimized-for-volumetric-expansion" . 1)))) (density/relax 0.75 real #f 0.75 1 ("Under-Relaxation Factor for density ~a")) (dpm/relax 0.75 real #f 0.75 0.5 ("DPM source terms under-relaxation factor: ~a")) (fvar/relax 0.9 real #f 0.9 0.9 ("Under-relaxation factor for mean-fraction ~a")) (mom/relax 0.75 real #f 0.75 0.7 ("Under-Relaxation Factor for momentum ~a")) (premixc/relax 0.9 real #f 0.9 0.9 ("Under-relaxation factor for premix-c ~a")) (pressure/relax 0.75 real #f 0.75 0.3 ("Under-Relaxation Factor for pressure ~a"))) ("Multi Phase PISO" 32 (lambda () (and (equal? (cdr (assq 'sg-mphase? (%rp-config #f))) 'multi-fluid) (eqv? (rpgetvar 'flow/scheme) 30))) (lambda () #f) (pressure/max-iter 0 integer #f 0 10 ("Pressure skewness correction: ~a")) (piso/coupling? #f boolean #f #f #t ("Skewness neighbor coupling: ~a"))) ("Fast Transient SIMPLEC" 243 (lambda () (and (or (cdr (assq 'sg-pdf? (%rp-config #f))) (cdr (assq 'sg-par-premix? (%rp-config #f)))) (cdr (assq 'rp-unsteady? (%rp-config #f))) (not (cdr (assq 'sg-noniterative? (%rp-config #f)))) (rpgetvar 'pdf/activate-ft-simplec?))) (lambda () #f) (models/equation-order 1 integer #f 1 0 ("Equation order: ~a" (("Standard" . 0) ("Optimized-for-volumetric-expansion" . 1)))) (flow/scheme 21 integer #f 21 20 ("P-V coupling method is: ~a" (("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Fractional Step" . 25) ("Coupled" . 24) ("Phase Coupled SIMPLE" . 23) ("Phase Coupled PISO" . 30)))) (pressure/cycle-type 3 integer #f 3 1 ("AMG cycle type for pressure equation: ~a" ((0 . "Flexible") (1 . "V-Cycle") (2 . "W-Cycle") (3 . "F-Cycle")))) (pressure/scheme 12 integer #f 12 12 ("Pressure discretization scheme: ~a" (("First Order Upwind" . 0) ("Second Order Upwind" . 1) ("Power Law" . 2) ("Central Differencing" . 3) ("QUICK" . 4) ("Modified HRIC" . 5) ("Third-Order MUSCL" . 6) ("Bounded Central Differencing" . 7) ("CICSAM" . 8) ("Low Diffusion Second Order" . 9) ("Standard" . 10) ("Linear" . 11) ("Second Order" . 12) ("Body Force Weighted" . 13) ("PRESTO!" . 14) ("Continuity Based" . 15) ("Geo-Reconstruct" . 16) ("Donor-Acceptor" . 17) ("Modified Body Force Weighted" . 18) ("SIMPLE" . 20) ("SIMPLEC" . 21) ("PISO" . 22) ("Phase Coupled SIMPLE" . 23) ("Coupled" . 24) ("Fractional Step" . 25) ("Compressive" . 28) ("BGM" . 29) ("Phase Coupled PISO" . 30)))) (pressure/amg-alpha 0.01 real #f 0.01 0.1 ("Multigrid termination for the pressure: ~a")) (pressure/relax 0.75 real #f 0.75 0.3 ("Under-Relaxation Factor for pressure: ~a")) (mom/relax 0.75 real #f 0.75 0.7 ("Under-Relaxation Factor for momentum: ~a")) (dpm/relax 0.75 real #f 0.75 0.5 ("Under-Relaxation Factor for dpm: ~a")) (density/relax 0.75 real #f 0.75 1 ("Under-Relaxation Factor for density: ~a")) (max-iterations-per-step 10 integer #f 10 20 ("Max. no. of iterations per time step: ~a"))) ("FGM Robustness Improvements" 244 (lambda () (and (cdr (assq 'sg-par-premix? (%rp-config #f))) (cdr (assq 'rp-unsteady? (%rp-config #f))) (rpgetvar 'prepdf/prmx-flamelet?) (eqv? (rpgetvar 'pdf/prmx-fla-turb-chem-model) 0) (cdr (assq 'sg-dpm? (%rp-config #f))))) (lambda () #f) (premixc/fgm-src-method-1? #t boolean #f #t #f ("Enable convergence method 1: ~a"))) ("DBNS Poor Mesh Numerics" 245 (lambda () (and (not (rp-seg?)) (rpgetvar 'mesh/bad/tmp-enhanced-pmn?))) (lambda () #f) (mesh/bad/enable-quality-based-treatment? #t boolean #f #t #f ("Quality Based Treatment?: ~a")) (mesh/bad/min-orthogonal-quality 0.2 real #f 0.2 0.05 ("Min Orthogonal Quality: ~a")) (mesh/bad/tmp-limit-cfl? #t boolean #f #t #f ("Limit CFL?: ~a")) (mesh/bad/tmp-cfl-limit 1. real #f 1. 1. ("CFL Limit: ~a")) (mesh/bad/repair-sltn-mode 0 integer #f 0 0 ("Solution repair mode: ~a")) (mesh/bad/repair-grad-mode 2 integer #f 2 2 ("Gradient repair mode: ~a"))))))) + +(0 "Table manager:") (0 "Cortex variables:") (38 (( +(reference-frames-display (((name . "global") (display-state . "")))) +(reference-frames-definition (((name . "global") (origin point 0. 0. 0. (frame . parent)) (orientation two-axis (axis ((axis-from axis-label x (frame . global)) (axis-to vector 1. 0. 0. (frame . parent))) ((axis-from axis-label y (frame . global)) (axis-to vector 0. 1. 0. (frame . parent)))) (auto? . #t)) (transformations)))) +(reference-frames (((name . "global") (id . 1) (parent . 0) (current-state (origin 0. 0. 0.) (quat 1. 0. 0. 0.)) (motion (motion-type . 0) (velocity 0. 0. 0.) (acceleration 0. 0. 0.) (omega (angle . 0.) (axis 0 0 1)) (alpha (angle . 0.) (axis 0 0 1)) (update . "")) (read-only? . #t)))) (gui-processing? #t) (surfaces/groups ((moving_base (0)) (stationary_walls (1)) (moving_wall (2)) (interior-surface_body (3)))) (cx-virtual-id-list (4196 4197 4198 4199)) (cx-surface-id-map ((3 4199) (2 4198) (1 4197) (0 4196))) (cx-surface-type ((0 0) (1 0) (2 0) (3 0))) (cx-surface-def-list ((4199 () (zone-surface 4199 1) #f) (4198 () (zone-surface 4198 5) #f) (4197 () (zone-surface 4197 6) #f) (4196 () (zone-surface 4196 7) #f))) -(cx-surface-list #((0 ((zid 7) (type zone-surf) (name moving_base) (status active) (facet-info (0 50 0 51)))) (1 ((zid 6) (type zone-surf) (name stationary_walls) (status active) (facet-info (0 100 0 102)))) (2 ((zid 5) (type zone-surf) (name moving_wall) (status active) (facet-info (0 50 0 51)))) (3 ((zid 1) (type zone-surf) (name interior-surface_body) (status active) (facet-info (0 7673 0 2691)))) #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f)) -(view-list ((front ((0.5 0.5 2.625) (0.5 0.5 0.) (0. 1. 0.) 1.05 1.05 "perspective") #(1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1)) (back ((0.5 0.5 -2.625) (0.5 0.5 0.) (0. 1. 0.) 1.05 1.05 "perspective") #(1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1)))) -(lights/headlight/on? #f) +(cx-surface-list #((0 ((face-color #f) (edge-color #f) (zid 7) (type zone-surf) (name moving_base) (status active) (facet-info (0 50 0 51)))) (1 ((face-color #f) (edge-color #f) (zid 6) (type zone-surf) (name stationary_walls) (status active) (facet-info (0 100 0 102)))) (2 ((face-color #f) (edge-color #f) (zid 5) (type zone-surf) (name moving_wall) (status active) (facet-info (0 50 0 51)))) (3 ((face-color #f) (edge-color #f) (zid 1) (type zone-surf) (name interior-surface_body) (status active) (facet-info (0 7673 0 2691)))) #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f #f)) +(view-list ((front ((0.500000000000001 0.5 2.625000000000005) (0.500000000000001 0.5 0.) (0. 1. 0.) 1.050000000000002 1.050000000000002 "perspective") #(1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1)) (back ((0.500000000000001 0.5 -2.625000000000005) (0.500000000000001 0.5 0.) (0. 1. 0.) 1.050000000000002 1.050000000000002 "perspective") #(1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1)))) (render/surfaces (2 1 0)) (render/grid/surfaces (2 1 0)) (filled-grid? #f) (xy/bottom -1) (scale/right -0.7) -(cx-case-version (19 1 0))))) +(cx-case-version (21 2 0))))) (0 "Domain Variables:") (64 ()) @@ -5765,10 +7551,10 @@ (13 (0 1 1ec1 0)) (10 (0 1 a84 0 2)) -(2012 (2 1 143e 1 1) -End of Binary Section 2012) +(3012 (2 1 143e 1 1) +End of Binary Section 3012) -(2013 (1 1 1df9 2 2) +(3013 (1 1 1df9 2 2) (¿ „ Ø jð¢× ?âØ ¢?4e€VgÇZ¿Ý 4ÚÞ ¿4˜!]BRÃÚ Ð1^ öâÛ ÃÐ1¶ù ™=ú ¶™OÐ ÐÉaÑ ÐaGnI oäì¡; @@ -6930,9 +8716,9 @@ End of Binary Section 2012) Š ´ ªj† € oS‡ ƒ LU‰ ‚ sZˆ „ ¿ WŠ Ãσ Œ ˵ „ Ó N … ¦c ‘ ¹z’ ½“ Ž xÀ— ˜ ~U ¼ 5Å™ š ‚ƒ£ ¦ œ¡º ‹ Ú Õ ± ° ?»º ¸ ²Ü) -End of Binary Section 2013) +End of Binary Section 3013) -(2013 (5 1dfa 1e2b 3 2) +(3013 (5 1dfa 1e2b 3 2) („ ½ Ø" T @@ -7033,9 +8819,9 @@ End of Binary Section 2013) êƒ „ ) -End of Binary Section 2013) +End of Binary Section 3013) -(2013 (6 1e2c 1e8f 3 2) +(3013 (6 1e2c 1e8f 3 2) (½ ¿ Ø¿ À À Á üÁ  A à ôÃ Ä …Ä Å zÅ Æ ýÆ Ç ‚Ç È ZÈ É ’É Ê ÞÊ Ë Ë Ì åÌ Í KÍ Î èÎ Ï ÆÏ Ð ÅÐ Ñ aÑ Ò FÒ Ó ŽÓ Ô (Ô Õ îÕ Ö Ö × ã× Ø ?Ø Ù 5Ù Ú 2Ú Û ÐÛ Ü 0Ü Ý ÛÝ Þ 4Þ ß —ï ¾ Ïß à và á ?á â â ã 8ã ä #ä å ?å æ ýæ ç æç è è é ^é ê ê ë ãë ì ñì í Âí î Xî ï Ðð # É# $ @@ -7136,9 +8922,9 @@ End of Binary Section 2013) ZR S Õ) -End of Binary Section 2013) +End of Binary Section 3013) -(2013 (7 1e90 1ec1 3 2) +(3013 (7 1e90 1ec1 3 2) (¾ ñ Îñ ò ­ò ó %ó ô 3 ô õ ·õ ö ö ÷ í÷ ø §ø ù "ù ú ™ú û Nû ü ü ý uý þ æþ ÿ •ÿ   @@ -7210,7 +8996,7 @@ End of Binary Section 2013) V ! Ë) -End of Binary Section 2013) +End of Binary Section 3013) (3010 (1 1 a84 1 2) (à?à?é—]ÓAã?Ç•¥&2Ð? ™™Ù?è?Ð? ™™Ù?è?033ã?¬ªªjæ?UUUuwwç?&ŽŽ(KÓ?†ÊɇRYÑ?»KCnMÊÐ?sí‰[ì‹æ?Èå53mjç?ò7äƒCÓ?9Žãؼšè?ä8ŽãöÉ?†ªÀ–ÐÈ?*Ý—OÏÉì?î8ŽãöÉ?Èq‡ •Í?ÈqG¾é?9Žãؼšè?uÇÑ'}â?Žã8S—Û?"0³ü†Û?¤Qlµõ9Ö?0ÜõñçÛ? Å87Æ?%Çq\°Û?9ŽãxV4â?ÇqÌíâ?Çq÷æÕä?h±ZÒá?(¬ 9Ðbê?‰EJRðÛç?Øü°.Úòß?V`Â]Ÿ*Ð?Jr‡Îà?J±Ñà¿?xøÉËþá?´ iàØë?yA%.éÝÛ?³ìS¶h%Á?ÆŠ¬ kßç?XUU5m Ó?VUUÁ?ÄüØ9æ?=BÖ²¤ë?ú´ÿ²•Éë?^v¢YŒ/Ò?¢øŒ\T*×?¥Ñ3,Å÷ë?ð‚‘`ì?‚§[]Bä?©èkwûä¿?°ÝRû{×?Õ\´A‹ ä?{€Y[¿?ä8Ž|óê?Çql^Mì?wÇé2Ä?Èq‡ •½?Â]=àl8ì?æÂ=Éo9Ä?/ áUÐYä?m¬Ñûä?òÑÉײO×? v]W‰•¸?³,Ëõ¤Ïë?Œ,…ÄÐ?èlLOKã?5ðt‹”ç?º5?QXÙ?ä8Ž#ßì?Çq,}Òç?þ8Žãö¹?rDZ[Ð?Çq,}Òç?ä8Žãö¹?¢½„ž+à?Lh/a!8Ä?¨¯$<÷Ý?p^0X4Ð?m/¡¯Ý?í%´§÷ñæ?ÆÝs~$sá?NO¶EžÙÑ?¸½„v®<À?{ íå…Õß?˜Ð^bÔðë?í%´=à?·½„6jøË?i/¡=ÞÒä?ß]}§K§À?Um`Õå?Ðq[°Õ?9ŽãhE#á?Çq|Ò'å?Žã8.u¹Ý?A„¡óSá?Ç1…½í?2ÔŠ÷õÚ?á¸cPŸµ?Mø“S3Ô? )M Ìè?å8Ž#ßè?Çqøæå?ÇqûƒÌ?rÇñ2Ô?Çqøæå?rÇqûƒÌ?œÐ^~›bØ?Ñ^B;™¤Ð?XUU¡Óâ?VUU9m ç?x‚g;#Žâ?ÒÜ7Ô"á?û0‰¹ãÚ?\Fô‘WºÝ?7§A4ä?õ˜þ]é?™ëÐF1]×?M(ãH!Ö?¼›ž÷áà?Mý^¥µ?Çq[°é?9Žã°ÃÔÕ?#sG÷äÆå?Ú‹oå?;ŽãpÇÑ?rÇ‘€oì?7åfDe¿ß?*æxýktã?Ž3"Ò× à?æºT„?÷Ø?Žã8S—ë?rÇé2´?´BDåÑe´?à\RäÁ?iÁúÁEsí?Bqsë†ë?Â1ç—××ã?²ý®üÎKì?Ã%‡Éfíé?I}¯`¼á?H9GÚdJÈ?ïMxAó‡Ü?–¹Qzä>Ü?Ú¤ ÿ»|í?ȱÔð]à?däÁ¥Àè?iŸ9zt¾ë?DušÞ]×?bB{¨÷á?ÚKhß±ÙÖ?I{ ý¯Ü?ÚK'“ä?á÷È ÐVÍ?ÏPÝÀ? <ݺK¡è?8ïvúë?Çq$à›ë?ä8Žïê?—ã8lÁ?Çq$à›Ç?úåý&`!ê?õت=½Á?í;e%¸ØÅ?¸ÜûÒê?VUUÝÝÝí?«ªª6Ð?p>ÌW“èç?Þ£À$£ê?Äð˜/Ð?€"ûuá½Æ?ÎÝ( ©/Ö?¤úþÐŒÉ?ro4Ì °?¶,HÕwÈä?â‰ÌÝ°?ì«ï7Âè?tÇ øæã?rÇÍŠFæ?J_JþÁ¯?ÔæóL´Ù?¡ó'ëÿí?ó¬ø/4ã?;ì”Ó?9ªÑkÖGÕ?…kÊ;|å?1ƒ±êæÒ?q[¢¼Õ?u(”{&Œæ?¨"m ìþé?âª}•-Þ?ÔܳÊeµÈ?(‚)\ëà?êýd“°í?8Š j¯Øí?蜦C{2·?-{„:±?Ðlåjßí?óü–Ír·? Ÿf³tÅæ?bçíþ „Ä?$–ÙzÓƒÄ?h(ÇÇuÒ?ÁF! ßê?q»{qÅæ?5QÁ›”ŽÉ?òþºb Cç?¬ªªJ~±Ô?VUU±?ä8Ž“>éí?ÇqÃPÙÕ?Xßô'¯æ?ÌJÓþIÜí?Å|ß÷¾?eÚêç÷í?”Âõä?°?$°?àzÖ?î?”Âõä?ÄSDWø¬á?hYyã6±Ê?PLb·èæí?’g ÙJ¯Þ?„ÚDyäɯ?$9ç¨à?¸æGe ê?ÂÓ “-Ï?hbôOøí?ªµ˜ñ`§Ú?÷¨­bØ?*ý@ÚÁ?ºpW‘ "â?üë`Ì!ºÁ?aBûQfØ?0¡ýWê?XÂÕ?î?«DZ[°?Žã8¶ýAâ?|®ã?È?AÜ©Éd$Ç? f˜›GØ?¿û)\Í6ê? ”×^Üã?Mcµ6¥é?ö*¯Yî?àÌ2·{;Ë?CDlý’v¯?<}34Kß?׃†Û+Ô?æý5e&Cà?x]‚Gíå?3ŽŠr†zÆ?øn³ânã?Lh/1jøë?öÚkâ?å^B;WÀ?¾„ö2ÍÁÛ?:ŽãpÇé?rÇøæÙ?Rh/)´—Ø?_B{ ›å?2¡½ê%´ã?B{ åÉÔ?h/¡yùâ?&´—°²?«ñ=òî?Š&«h°'Ç?¹Ñïï4æ?$ž}~é?íDa©­±?z‚dôð³æ?ñ;X•î¯?Ìcͯ½í?~X$k0í?º5ûªé?ÊæG£|6·?b‘²²TÉ?º5ûªé?¸æG£|6·?Êq£‘€ã?Çq#à›ã?ÇqPÙaæ?Çq{Ò'á?xǹÜþØ?rǹ?ÈØ?JU$ZñFÓ?/Ÿ=bO~Ý?ðÖ yˆ.½?ÂuáÂ}­é?bV;‘wáÒ?:æFQ{±ê?RN¤­uÛ?ÎÑ· Y¥é?<Žã„ÊÃ?Èq‡ •­?rÇaM<ë?Žã86¯&î? Çz@À?äÑ}-ä?"ˆ;~&ñë?Y âÙÏ?y^5ƒ§lÇ?Øf1ºè?ój˜EH·Û?9q’¤°ËÙ?”$É,ùEâ?$IOÌã?’º@!Sì?”³!^îå?ÈÓw?÷f½?•!ÄC#Ô?qÁ*¥µîå?F„rïf½?=-c ÈÈ?€ŸÍÎÇ?]–kùÍé?WÃõJ ê?iô€¿‘6¯?³d†·–Ý?8ûö|(Hî?^Ö«NoEá?‘jÕä?«Ÿ*=î? @@ -7375,9 +9161,10 @@ v End of Binary Section 3010) (0 "Node flags:") -(2041 (1 a84) -((8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888) -End of Binary Section 2041) +(3041 (1 a84) +(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ( + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 ) +End of Binary Section 3041) (0 "Thread variables:") @@ -7414,6 +9201,7 @@ End of Binary Section 2041) (mrf-aj (constant . 0) (profile "" "")) (mrf-ak (constant . 1) (profile "" "")) (mrf-udf-zmotion-name . "none") + (forcemrf . #f) (mgrid-enable-transient? . #f) (mgrid-motion? . #f) (mgrid-relative-to-thread . -1) @@ -7428,6 +9216,20 @@ End of Binary Section 2041) (mgrid-aj (constant . 0) (profile "" "")) (mgrid-ak (constant . 1) (profile "" "")) (mgrid-udf-zmotion-name . "none") + (solid-motion? . #f) + (solid-relative-to-thread . -1) + (solid-omega (constant . 0) (profile "" "")) + (solid-grid-x-vel (constant . 0) (profile "" "")) + (solid-grid-y-vel (constant . 0) (profile "" "")) + (solid-grid-z-vel (constant . 0) (profile "" "")) + (solid-x-origin (constant . 0) (profile "" "")) + (solid-y-origin (constant . 0) (profile "" "")) + (solid-z-origin (constant . 0) (profile "" "")) + (solid-ai (constant . 0) (profile "" "")) + (solid-aj (constant . 0) (profile "" "")) + (solid-ak (constant . 1) (profile "" "")) + (solid-udf-zmotion-name . "none") + (forcemsolid . #f) (radiating? . #t) (deactivated? . #f) (les-embedded? . #f) @@ -7493,6 +9295,18 @@ End of Binary Section 2041) (brooks-corey-pe . 440.) (brooks-corey-ng . 1.124) (leverett-con-ang . 0.3490658503988659) + (rp-cbox-p1 . #f) + (rp-edit-p1 . #f) + (rel-perm-tabular-p1? . #f) + (rel-perm-table-p1 . "none") + (rel-perm-satw-p1 . "none") + (rel-perm-rp-p1 . "none") + (rp-cbox-p2 . #f) + (rp-edit-p2 . #f) + (rel-perm-tabular-p2? . #f) + (rel-perm-table-p2 . "none") + (rel-perm-satw-p2 . "none") + (rel-perm-rp-p2 . "none") (wetting-phase . 2) (non-wetting-phase . 2) (equib-thermal? . #t) @@ -7530,6 +9344,7 @@ End of Binary Section 2041) (surface-volume-ratio . 0) (electrolyte? . #t) (mp-compressive-beta-max . 2) + (mp-boiling-zone? . #t) (numerical-beach? . #f) (beach-id . 1) (beach-multi-dir? . #f) @@ -7549,6 +9364,8 @@ End of Binary Section 2041) (beach-damp-relative? . #t) (beach-damp-resist-lin . 10) (beach-damp-resist . 10) + (porous-structure? . #f) + (structure-material . aluminum) (anisotropic-spe-diff? . #f) (spe-diff-xx . 1) (spe-diff-xy . 0) @@ -7580,7 +9397,8 @@ End of Binary Section 2041) (h (constant . 0) (profile "" "")) (tinf (constant . 300) (profile "" "")) (planar-conduction? . #f) - (shell-conduction ((thickness . 0) (material . aluminum) (qdot (constant . 0) (profile)))) + (shell-conduction ((thickness . 0) (material . "aluminum") (qdot (constant . 0) (profile)))) + (thin-wall ((thickness . 0) (material . "aluminum") (qdot (constant . 0) ((profile "" ""))))) (motion-bc . 1) (shear-bc . 0) (rough-bc . 0) @@ -7628,8 +9446,14 @@ End of Binary Section 2041) (dpm/bc-frictn-coeff (constant . 0.2) (polynomial piecewise-linear relative-velocity (0. . 0.5) (1. . 0.2) (10. . 0.2) (210. . 0.12)) (polynomial piecewise-polynomial relative-velocity (0. 1. 0.5 -0.6 0.3) (1. 10. 0.2) (10. 210. 0.196 -0.0004))) (dpm/bc-udf . "none") (dpm/film-splash-nsamp . 4) + (dpm/crit-temp-option . 0) (dpm/crit-temp-factor . 1.) + (dpm/calibratable-temp . 180.) (dpm/imping-splash-model . 0) + (dpm/t-deposition-offset . 207.) + (dpm/t-delta . 40.) + (dpm/a-wet . 600.) + (dpm/partial-evap-ratio . 0.08) (dpm/ra-roughness . 0.) (dpm/rz-roughness . 0.) (dpm/rq-roughness . 0.) @@ -7660,12 +9484,42 @@ End of Binary Section 2041) (dpm/bc-erosion-oka-k3 . 0.19) (dpm/bc-erosion-oka-dref . 0.000326) (dpm/bc-erosion-oka-vref . 104.) + (dpm/bc-erosion-dnv? . #t) + (dpm/bc-erosion-dnv-k . 2e-09) + (dpm/bc-erosion-dnv-n . 2.6) + (dpm/bc-erosion-dnv-ductile? . #t) + (dpm/bc-erosion-shear? . #t) + (dpm/bc-erosion-shear-v . 1.89e-08) + (dpm/bc-erosion-shear-c . 1.41) + (dpm/bc-erosion-shear-packing-limit . 0.63) + (dpm/bc-erosion-shielding? . #t) (dpm/wall-heat-exchange? . #f) (dpm/film-condensation? . #f) (dpm/film-bl-model? . #f) + (dpm/film-stripping? . #f) + (dpm/crit-stripping-const . 0.01) + (dpm/film-separation-model . 1) + (dpm/critical-we-number . 0) + (dpm/film-separation-angle . 90) + (dpm/allow-lwf-to-vof? . #t) + (dpm/allow-vof-to-lwf? . #t) + (dpm/initialize-lwf? . #f) + (dpm/initial-height . 0.0001) + (dpm/initial-x-velocity . 0) + (dpm/initial-y-velocity . 0) + (dpm/initial-z-velocity . 0) + (dpm/initial-temperature . 298.15) + (dpm/initial-injection . "unspecified") + (dpm/film-parcel-density . 1000000) + (dpm/minimum-number-of-parcels . 1) (band-in-emiss ((constant . 1) (profile "" ""))) (radiation-bc . 3) (mc-bsource-p? . #f) + (mc-poldfun-p? . #f) + (polar-func-type . "Expression") + (mc-polar-expr (expression . "") (constant . 0)) + (polar-pair-list ((polar-real-angle . 0) (polar-real-intensity . 0)) ((polar-real-angle . 0) (polar-real-intensity . 0))) + (pold-pair-list-rad . #f) (q-ni (constant . 1) (profile "" "")) (q-nj (constant . 0) (profile "" "")) (q-nk (constant . 0) (profile "" "")) @@ -7700,6 +9554,28 @@ End of Binary Section 2041) (echem-reaction? . #f) (elec-potential-mechs . 0) (faradaic-heat? . #f) + (li-ion-type . 0) + (li-ion-value (constant . 0) (profile "" "")) + (x-displacement-type . 0) + (x-displacement-value (constant . 0) (profile "" "")) + (y-displacement-type . 0) + (y-displacement-value (constant . 0) (profile "" "")) + (z-displacement-type . 0) + (z-displacement-value (constant . 0) (profile "" "")) + (per-dispx (constant . 0) (profile "" "")) + (per-dispy (constant . 0) (profile "" "")) + (per-dispz (constant . 0) (profile "" "")) + (per-imagx (constant . 0) (profile "" "")) + (per-imagy (constant . 0) (profile "" "")) + (per-imagz (constant . 0) (profile "" "")) + (freq (constant . 0) (profile "" "")) + (amp (constant . 0) (profile "" "")) + (nodal-diam . 0) + (pass-number (constant . 0) (profile "" "")) + (fwd? . #f) + (aero? . #f) + (cmplx? . #f) + (norm? . #f) (uds-bc 0) (uds . value) (gtemp-bc . 0) @@ -7724,7 +9600,14 @@ End of Binary Section 2041) (contact-resistance (constant . 0) (profile "" "")) (reaction-mechs . 0) (surf-washcoat-factor . 1) + (ablation-model . 0) + (ablation/vielle/a . 0.1) + (ablation/vielle/n . 0.1) + (ablation/surfacerxn/density . 0) (specular-coeff . 0.) + (mom-accom-coef . 1) + (therm-accom-coef . 1) + (eve-accom-coef . 0.001) (film-wall? . #f) (film-wall-bc . 0) (film-height (constant . 0.) (profile "" "")) @@ -7749,16 +9632,35 @@ End of Binary Section 2041) (film-cond-rate (constant . 0.) (profile "" "")) (film-vapo-rate (constant . 0.) (profile "" "")) (film-momentum-coupling? . #f) - (film-impinge-model . 0) (film-splash-wall? . #f) + (film-boundary-separation? . #f) + (film-impinge-model . 0) (film-splash-nparc . 4) (film-crit-temp-factor . 1.1) (film-roughness-ra . 0.) (film-roughness-rz . 0.) + (film-t-deposition-offset . 207.) + (film-t-delta . 40.) + (film-a-wet . 600.) + (film-partial-evap-ratio . 0.08) + (film-contact-angle? . #f) + (film-contact-angle-mean (constant . 0.785398) (profile "" "")) + (film-contact-angle-rstd . 0.05) + (film-contact-angle-beta . 1.) + (film-vof-coupling-high? . #f) + (film-vof-trans-high . 0.5) + (film-vof-trans-high-relax . 0.5) + (film-vof-coupling-low? . #f) + (film-vof-trans-low . 0.) + (film-vof-trans-low-relax . 0.5) (caf (constant . 1) (profile "" "")) (thermal-stabilization? . #f) (scale-factor . 0) (stab-method . 1) + (fensapice/ice/icing-mode . 1) + (fensapice/ice/hflux? . #f) + (fensapice/ice/hflux . 0) + (fensapice/drop/vwet? . #f) )) (39 (6 wall stationary_walls 1)( (geom-disable? . #f) @@ -7777,7 +9679,8 @@ End of Binary Section 2041) (h (constant . 0) (profile "" "")) (tinf (constant . 300) (profile "" "")) (planar-conduction? . #f) - (shell-conduction ((thickness . 0) (material . aluminum) (qdot (constant . 0) (profile)))) + (shell-conduction ((thickness . 0) (material . "aluminum") (qdot (constant . 0) (profile)))) + (thin-wall ((thickness . 0) (material . "aluminum") (qdot (constant . 0) ((profile "" ""))))) (motion-bc . 0) (shear-bc . 0) (rough-bc . 0) @@ -7825,8 +9728,14 @@ End of Binary Section 2041) (dpm/bc-frictn-coeff (constant . 0.2) (polynomial piecewise-linear relative-velocity (0. . 0.5) (1. . 0.2) (10. . 0.2) (210. . 0.12)) (polynomial piecewise-polynomial relative-velocity (0. 1. 0.5 -0.6 0.3) (1. 10. 0.2) (10. 210. 0.196 -0.0004))) (dpm/bc-udf . "none") (dpm/film-splash-nsamp . 4) + (dpm/crit-temp-option . 0) (dpm/crit-temp-factor . 1.) + (dpm/calibratable-temp . 180.) (dpm/imping-splash-model . 0) + (dpm/t-deposition-offset . 207.) + (dpm/t-delta . 40.) + (dpm/a-wet . 600.) + (dpm/partial-evap-ratio . 0.08) (dpm/ra-roughness . 0.) (dpm/rz-roughness . 0.) (dpm/rq-roughness . 0.) @@ -7857,12 +9766,42 @@ End of Binary Section 2041) (dpm/bc-erosion-oka-k3 . 0.19) (dpm/bc-erosion-oka-dref . 0.000326) (dpm/bc-erosion-oka-vref . 104.) + (dpm/bc-erosion-dnv? . #t) + (dpm/bc-erosion-dnv-k . 2e-09) + (dpm/bc-erosion-dnv-n . 2.6) + (dpm/bc-erosion-dnv-ductile? . #t) + (dpm/bc-erosion-shear? . #t) + (dpm/bc-erosion-shear-v . 1.89e-08) + (dpm/bc-erosion-shear-c . 1.41) + (dpm/bc-erosion-shear-packing-limit . 0.63) + (dpm/bc-erosion-shielding? . #t) (dpm/wall-heat-exchange? . #f) (dpm/film-condensation? . #f) (dpm/film-bl-model? . #f) + (dpm/film-stripping? . #f) + (dpm/crit-stripping-const . 0.01) + (dpm/film-separation-model . 1) + (dpm/critical-we-number . 0) + (dpm/film-separation-angle . 90) + (dpm/allow-lwf-to-vof? . #t) + (dpm/allow-vof-to-lwf? . #t) + (dpm/initialize-lwf? . #f) + (dpm/initial-height . 0.0001) + (dpm/initial-x-velocity . 0) + (dpm/initial-y-velocity . 0) + (dpm/initial-z-velocity . 0) + (dpm/initial-temperature . 298.15) + (dpm/initial-injection . "unspecified") + (dpm/film-parcel-density . 1000000) + (dpm/minimum-number-of-parcels . 1) (band-in-emiss ((constant . 1) (profile "" ""))) (radiation-bc . 3) (mc-bsource-p? . #f) + (mc-poldfun-p? . #f) + (polar-func-type . "Expression") + (mc-polar-expr (expression . "") (constant . 0)) + (polar-pair-list ((polar-real-angle . 0) (polar-real-intensity . 0)) ((polar-real-angle . 0) (polar-real-intensity . 0))) + (pold-pair-list-rad . #f) (q-ni (constant . 1) (profile "" "")) (q-nj (constant . 0) (profile "" "")) (q-nk (constant . 0) (profile "" "")) @@ -7897,6 +9836,28 @@ End of Binary Section 2041) (echem-reaction? . #f) (elec-potential-mechs . 0) (faradaic-heat? . #f) + (li-ion-type . 0) + (li-ion-value (constant . 0) (profile "" "")) + (x-displacement-type . 0) + (x-displacement-value (constant . 0) (profile "" "")) + (y-displacement-type . 0) + (y-displacement-value (constant . 0) (profile "" "")) + (z-displacement-type . 0) + (z-displacement-value (constant . 0) (profile "" "")) + (per-dispx (constant . 0) (profile "" "")) + (per-dispy (constant . 0) (profile "" "")) + (per-dispz (constant . 0) (profile "" "")) + (per-imagx (constant . 0) (profile "" "")) + (per-imagy (constant . 0) (profile "" "")) + (per-imagz (constant . 0) (profile "" "")) + (freq (constant . 0) (profile "" "")) + (amp (constant . 0) (profile "" "")) + (nodal-diam . 0) + (pass-number (constant . 0) (profile "" "")) + (fwd? . #f) + (aero? . #f) + (cmplx? . #f) + (norm? . #f) (uds-bc 0) (uds . value) (gtemp-bc . 0) @@ -7921,7 +9882,14 @@ End of Binary Section 2041) (contact-resistance (constant . 0) (profile "" "")) (reaction-mechs . 0) (surf-washcoat-factor . 1) + (ablation-model . 0) + (ablation/vielle/a . 0.1) + (ablation/vielle/n . 0.1) + (ablation/surfacerxn/density . 0) (specular-coeff . 0.) + (mom-accom-coef . 1) + (therm-accom-coef . 1) + (eve-accom-coef . 0.001) (film-wall? . #f) (film-wall-bc . 0) (film-height (constant . 0.) (profile "" "")) @@ -7946,16 +9914,35 @@ End of Binary Section 2041) (film-cond-rate (constant . 0.) (profile "" "")) (film-vapo-rate (constant . 0.) (profile "" "")) (film-momentum-coupling? . #f) - (film-impinge-model . 0) (film-splash-wall? . #f) + (film-boundary-separation? . #f) + (film-impinge-model . 0) (film-splash-nparc . 4) (film-crit-temp-factor . 1.1) (film-roughness-ra . 0.) (film-roughness-rz . 0.) + (film-t-deposition-offset . 207.) + (film-t-delta . 40.) + (film-a-wet . 600.) + (film-partial-evap-ratio . 0.08) + (film-contact-angle? . #f) + (film-contact-angle-mean (constant . 0.785398) (profile "" "")) + (film-contact-angle-rstd . 0.05) + (film-contact-angle-beta . 1.) + (film-vof-coupling-high? . #f) + (film-vof-trans-high . 0.5) + (film-vof-trans-high-relax . 0.5) + (film-vof-coupling-low? . #f) + (film-vof-trans-low . 0.) + (film-vof-trans-low-relax . 0.5) (caf (constant . 1) (profile "" "")) (thermal-stabilization? . #f) (scale-factor . 0) (stab-method . 1) + (fensapice/ice/icing-mode . 1) + (fensapice/ice/hflux? . #f) + (fensapice/ice/hflux . 0) + (fensapice/drop/vwet? . #f) )) (39 (7 wall moving_base 1)( (geom-disable? . #f) @@ -7974,7 +9961,8 @@ End of Binary Section 2041) (h (constant . 0) (profile "" "")) (tinf (constant . 300) (profile "" "")) (planar-conduction? . #f) - (shell-conduction ((thickness . 0) (material . aluminum) (qdot (constant . 0) (profile)))) + (shell-conduction ((thickness . 0) (material . "aluminum") (qdot (constant . 0) (profile)))) + (thin-wall ((thickness . 0) (material . "aluminum") (qdot (constant . 0) ((profile "" ""))))) (motion-bc . 0) (shear-bc . 0) (rough-bc . 0) @@ -8022,8 +10010,14 @@ End of Binary Section 2041) (dpm/bc-frictn-coeff (constant . 0.2) (polynomial piecewise-linear relative-velocity (0. . 0.5) (1. . 0.2) (10. . 0.2) (210. . 0.12)) (polynomial piecewise-polynomial relative-velocity (0. 1. 0.5 -0.6 0.3) (1. 10. 0.2) (10. 210. 0.196 -0.0004))) (dpm/bc-udf . "none") (dpm/film-splash-nsamp . 4) + (dpm/crit-temp-option . 0) (dpm/crit-temp-factor . 1.) + (dpm/calibratable-temp . 180.) (dpm/imping-splash-model . 0) + (dpm/t-deposition-offset . 207.) + (dpm/t-delta . 40.) + (dpm/a-wet . 600.) + (dpm/partial-evap-ratio . 0.08) (dpm/ra-roughness . 0.) (dpm/rz-roughness . 0.) (dpm/rq-roughness . 0.) @@ -8054,12 +10048,42 @@ End of Binary Section 2041) (dpm/bc-erosion-oka-k3 . 0.19) (dpm/bc-erosion-oka-dref . 0.000326) (dpm/bc-erosion-oka-vref . 104.) + (dpm/bc-erosion-dnv? . #t) + (dpm/bc-erosion-dnv-k . 2e-09) + (dpm/bc-erosion-dnv-n . 2.6) + (dpm/bc-erosion-dnv-ductile? . #t) + (dpm/bc-erosion-shear? . #t) + (dpm/bc-erosion-shear-v . 1.89e-08) + (dpm/bc-erosion-shear-c . 1.41) + (dpm/bc-erosion-shear-packing-limit . 0.63) + (dpm/bc-erosion-shielding? . #t) (dpm/wall-heat-exchange? . #f) (dpm/film-condensation? . #f) (dpm/film-bl-model? . #f) + (dpm/film-stripping? . #f) + (dpm/crit-stripping-const . 0.01) + (dpm/film-separation-model . 1) + (dpm/critical-we-number . 0) + (dpm/film-separation-angle . 90) + (dpm/allow-lwf-to-vof? . #t) + (dpm/allow-vof-to-lwf? . #t) + (dpm/initialize-lwf? . #f) + (dpm/initial-height . 0.0001) + (dpm/initial-x-velocity . 0) + (dpm/initial-y-velocity . 0) + (dpm/initial-z-velocity . 0) + (dpm/initial-temperature . 298.15) + (dpm/initial-injection . "unspecified") + (dpm/film-parcel-density . 1000000) + (dpm/minimum-number-of-parcels . 1) (band-in-emiss ((constant . 1) (profile "" ""))) (radiation-bc . 3) (mc-bsource-p? . #f) + (mc-poldfun-p? . #f) + (polar-func-type . "Expression") + (mc-polar-expr (expression . "") (constant . 0)) + (polar-pair-list ((polar-real-angle . 0) (polar-real-intensity . 0)) ((polar-real-angle . 0) (polar-real-intensity . 0))) + (pold-pair-list-rad . #f) (q-ni (constant . 1) (profile "" "")) (q-nj (constant . 0) (profile "" "")) (q-nk (constant . 0) (profile "" "")) @@ -8094,6 +10118,28 @@ End of Binary Section 2041) (echem-reaction? . #f) (elec-potential-mechs . 0) (faradaic-heat? . #f) + (li-ion-type . 0) + (li-ion-value (constant . 0) (profile "" "")) + (x-displacement-type . 0) + (x-displacement-value (constant . 0) (profile "" "")) + (y-displacement-type . 0) + (y-displacement-value (constant . 0) (profile "" "")) + (z-displacement-type . 0) + (z-displacement-value (constant . 0) (profile "" "")) + (per-dispx (constant . 0) (profile "" "")) + (per-dispy (constant . 0) (profile "" "")) + (per-dispz (constant . 0) (profile "" "")) + (per-imagx (constant . 0) (profile "" "")) + (per-imagy (constant . 0) (profile "" "")) + (per-imagz (constant . 0) (profile "" "")) + (freq (constant . 0) (profile "" "")) + (amp (constant . 0) (profile "" "")) + (nodal-diam . 0) + (pass-number (constant . 0) (profile "" "")) + (fwd? . #f) + (aero? . #f) + (cmplx? . #f) + (norm? . #f) (uds-bc 0) (uds . value) (gtemp-bc . 0) @@ -8118,7 +10164,14 @@ End of Binary Section 2041) (contact-resistance (constant . 0) (profile "" "")) (reaction-mechs . 0) (surf-washcoat-factor . 1) + (ablation-model . 0) + (ablation/vielle/a . 0.1) + (ablation/vielle/n . 0.1) + (ablation/surfacerxn/density . 0) (specular-coeff . 0) + (mom-accom-coef . 1) + (therm-accom-coef . 1) + (eve-accom-coef . 0.001) (film-wall? . #f) (film-wall-bc . 0) (film-height (constant . 0.) (profile "" "")) @@ -8143,16 +10196,35 @@ End of Binary Section 2041) (film-cond-rate (constant . 0.) (profile "" "")) (film-vapo-rate (constant . 0.) (profile "" "")) (film-momentum-coupling? . #f) - (film-impinge-model . 0) (film-splash-wall? . #f) + (film-boundary-separation? . #f) + (film-impinge-model . 0) (film-splash-nparc . 4) (film-crit-temp-factor . 1.1) (film-roughness-ra . 0.) (film-roughness-rz . 0.) + (film-t-deposition-offset . 207.) + (film-t-delta . 40.) + (film-a-wet . 600.) + (film-partial-evap-ratio . 0.08) + (film-contact-angle? . #f) + (film-contact-angle-mean (constant . 0.785398) (profile "" "")) + (film-contact-angle-rstd . 0.05) + (film-contact-angle-beta . 1.) + (film-vof-coupling-high? . #f) + (film-vof-trans-high . 0.5) + (film-vof-trans-high-relax . 0.5) + (film-vof-coupling-low? . #f) + (film-vof-trans-low . 0.) + (film-vof-trans-low-relax . 0.5) (caf (constant . 1) (profile "" "")) (thermal-stabilization? . #f) (scale-factor . 0) (stab-method . 1) + (fensapice/ice/icing-mode . 1) + (fensapice/ice/hflux? . #f) + (fensapice/ice/hflux . 0) + (fensapice/drop/vwet? . #f) )) (0 "Boundary profiles:") diff --git a/examples/Cavity2D/Cavity2D_exports.cas.h5 b/examples/Cavity2D/Cavity2D_exports.cas.h5 new file mode 100644 index 0000000..86e95a6 Binary files /dev/null and b/examples/Cavity2D/Cavity2D_exports.cas.h5 differ diff --git a/examples/Cavity2D/init-fsi.scm b/examples/Cavity2D/init-fsi.scm index 25131e9..0100bbb 100644 --- a/examples/Cavity2D/init-fsi.scm +++ b/examples/Cavity2D/init-fsi.scm @@ -1,19 +1,26 @@ -(if (not (rp-var-object 'udf/convergence)) - (rp-var-define 'udf/convergence 1 'int #f) -) -(if (not (rp-var-object 'udf/ongoing)) - (rp-var-define 'udf/ongoing 1 'int #f) -) -(if (not (rp-var-object 'udf/iterate)) - (rp-var-define 'udf/iterate 0 'int #f) -) -(if (not (rp-var-object 'udf/checkpoint)) - (rp-var-define 'udf/checkpoint 0 'int #f) -) +; create scheme variables +(rp-var-define 'udf/convergence 1 'int #f) +(rp-var-define 'udf/ongoing 1 'int #f) +(rp-var-define 'udf/iterate 0 'int #f) +(rp-var-define 'udf/checkpoint 0 'int #f) +(rp-var-define 'udf/config-location "./precice-config.xml" 'string #f) +(rp-var-define 'solve/dt 0.5 'real #f) +; assign values to variables created (rpsetvar 'udf/convergence 1) (rpsetvar 'udf/ongoing 1) (rpsetvar 'udf/iterate 0) (rpsetvar 'udf/checkpoint 0) + +; make sure case is using fixed time stepping method +(rpsetvar 'time/adaptive/dt-method 0) + +;;; USER CAN EDIT THESE ;;; +(rpsetvar 'udf/config-location "./precice-config.xml") +(rpsetvar 'solve/dt 1.0) +;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; initialize flow field +(ti-menu-load-string (string-append "solve/set/time-step " (number->string(%rpgetvar 'solve/dt)))) (rpsetvar 'dynamesh/update-in-timestep/residual-criterion -1.0) (ti-menu-load-string "solve/initialize/initialize-flow") diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi.c deleted file mode 120000 index 035f5c3..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi.h b/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi.h deleted file mode 120000 index 4dc3e8d..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi.h +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi.h \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_and_wave_profile_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_and_wave_profile_udf.c deleted file mode 120000 index e589ec1..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_and_wave_profile_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_and_wave_profile_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_extrafunctions.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_extrafunctions.c deleted file mode 120000 index 88c85a8..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_extrafunctions.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_extrafunctions.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_udf.c deleted file mode 120000 index 91b7f19..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/fsi_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/makefile b/examples/Cavity2D/libudf/lnamd64/2ddp_host/makefile deleted file mode 100755 index 0cc5b5d..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/makefile +++ /dev/null @@ -1,239 +0,0 @@ -## -## Copyright 2003-2011 ANSYS, Inc. -## All Rights Reserved -## - -#----------------------------------------------------------------------# -# makefile for user defined functions. -#----------------------------------------------------------------------# - - -#----------------------------------------------------------------------# -# User modifiable section. -#----------------------------------------------------------------------# -include user.udf - -# Precompiled User Object files (for example .o files from .f sources) -# Path of the python lib may vary and needs to be adapted -# would also be nice to search for it automatically - -USER_OBJECTS=`pkg-config --cflags --libs libprecice` /home/ishaan/ansys_inc/v195/commonfiles/CPython/2_7_15/linx64/Release/python/lib/libpython2.7.so - - -#----------------------------------------------------------------------# -# Build targets (do not modify below this line). -#----------------------------------------------------------------------# -CC=cc -SHELL=/bin/sh -RELEASE=19.5.0 -VERSION=`basename "\`pwd\`"` -ARCH=`expr "\`pwd\`" : '.*/\(.*\)/[23].*'` -ARCHC=$(ARCH) -TARGET=libudf.so -UDFDATA=udf_names.c -SOURCES= $(CSOURCES) $(HSOURCES) -OBJS1 = $(CSOURCES:.cpp=.o) -OBJS2 = $(OBJS1:.c=.o) -OBJECTS= $(UDFDATA:.c=.o) $(OBJS2) - -INCLUDES= `pkg-config --cflags libprecice`/precice \ - -I$(FLUENT_INC)/fluent$(RELEASE)/$(ARCH)/$(VERSION) \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/main \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/addon-wrapper \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/io \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/species \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/pbns \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/numerics \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/sphysics \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/storage \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/mphase \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/bc \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/models \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/material \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/amg \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/util \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/mesh \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/udf \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/ht \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dx \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/turbulence \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/parallel \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/etc \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/ue \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dpm \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dbns \ - -I$(FLUENT_INC)/fluent$(RELEASE)/cortex/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/client/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/tgrid/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/mpi_wrapper/include \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/mpi_wrapper/src\ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/acoustics \ - -I. - -CFLAGS_ALPHA= -call_shared -fast -w0 -std1 -CFLAGS_HPUX10P8= +z -O +w1 -Aa -D_HPUX_SOURCE -CFLAGS_HPUX11= +z -O +w1 -Aa -D_HPUX_SOURCE -CFLAGS_HPUX11_64= +z -O +w1 -Aa -D_HPUX_SOURCE +DD64 +DA2.0W -CFLAGS_HPUX11_ia64= -O +DD64 +DSblended -Ae -CFLAGS_HIUX= -CFLAGS_IRIX65= -KPIC -xansi -fullwarn -O -n32 -mips3 -CFLAGS_IRIX65_MIPS4= -KPIC -xansi -fullwarn -O -n32 -mips4 -CFLAGS_IRIX65_MIPS4_64= -KPIC -xansi -fullwarn -O3 -64 -mips4 -OPT:IEEE_arithmetic=3:roundoff=3:Olimit=8000 -LNO:fusion=2:fission=0:prefetch=2 -signed -CFLAGS_AIX43= -O -qalign=natural -CFLAGS_POWER3= -O3 -qlanglvl=ansi -qarch=pwr3 -qfloat=hssngl -qansialias -qnolm -qalign=natural -CFLAGS_POWER3_64= -O -q64 -qnolm -qalign=natural -CFLAGS_ULTRA= -KPIC -fast -v -CFLAGS_ULTRA_64= -KPIC -fast -v -xarch=v9 -CFLAGS_FUJITSU_PP= -Kfast_GP=2,prefetch,V9 -CFLAGS_LNX86= -fpic -shared -ansi -Wall -m32 -O # options for CC= gcc -CFLAGS_LNAMD64= -D_lnamd64 -D_GNU_SOURCE -fpic -shared -Wall -O -DPTR_RESTRICT= # options for CC= gcc -CFLAGS_LOP64= -D_lop64 -D_GNU_SOURCE -fpic -shared -Wall -O -DPTR_RESTRICT= # options for CC= gcc -CFLAGS_LNIA64= -fpic -shared -Wall -O -DPTR_RESTRICT= # gcc options -CFLAGS_GCC= -fpic -shared -Wall -O -DPTR_RESTRICT= -CFLAGS_GCC64= -fpic -shared -Wall -O -m64 -DPTR_RESTRICT= - -LDFLAGS_ALPHA= -shared -lm -LDFLAGS_HPUX10P8= -b -lm -LDFLAGS_HPUX11= -b -lm -LDFLAGS_HPUX11_64= -b -lm -LDFLAGS_HPUX11_ia64= -b -lm -LDFLAGS_HIUX= -b -lm -LDFLAGS_IRIX65= -shared -n32 -mips3 -lm -LDFLAGS_IRIX65_MIPS4= -shared -n32 -mips4 -lm -LDFLAGS_IRIX65_MIPS4_64= -shared -64 -mips4 -lm -LDFLAGS_AIX43= -LDFLAGS_POWER3= -LDFLAGS_POWER3_64= -b64 -lmass -lm -LDFLAGS_ULTRA= -G -lm -LDFLAGS_ULTRA_64= -G -lm -LDFLAGS_FUJITSU_PP= -G -lm -LDFLAGS_LNX86= -shared -lm -m elf_i386 -LDFLAGS_LNAMD64= -shared -lm -LDFLAGS_LOP64= -shared -lm -LDFLAGS_LNIA64= -shared -lm -LDFLAGS_GCC= -shared -lm -LDFLAGS_GCC64= -shared -lm - -ifeq "$(GPU_SUPPORT)" "on" -INCLUDES+= -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/gpu_wrapper/include -LDFLAGS_LNAMD64+= -L$(FLUENT_INC)/fluent$(RELEASE)/multiport/gpu_wrapper/$(ARCH)/stub -lOpenCL -endif - -.c.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(HOST_FLAGS) $(INCLUDES) -c $*.c - -.cpp.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(HOST_FLAGS) $(INCLUDES) -c $*.cpp - -default: $(UDFDATA) - @$(MAKE) $(ARCHC) - -$(TARGET): makefile user.udf $(UDFDATA) $(OBJECTS) - @echo "# Linking $@ because of $?" - $(CC) $(LDFLAGS) $(OBJECTS) $(USER_OBJECTS) -o $@ - -$(UDFDATA): makefile $(CSOURCES) - @echo '# Generating $@ because of $?' - @echo '/* This file generated automatically. */' > $@ - @echo '/* Do not modify. */' >> $@ - @echo '#include "udf.h"' >> $@ - @echo '#include "prop.h"' >> $@ - @echo '#include "dpm.h"' >> $@ - @sed -n 's/^ *\(DEFINE_[_A-Z]* *([^{]*)\)[{ ]*/extern \1;/p' $(CSOURCES) >> $@ - @echo 'UDF_Data udf_data[] = {' >> $@ - @sed -n 's/^ *DEFINE_\([_A-Z]*\) *( *\([_a-zA-Z0-9]*\)[^{]*)[{ ]*/\{"\2", (void (*)(void))\2, UDF_TYPE_\1\},/p' $(CSOURCES) >> $@ - @echo '};' >> $@ - @echo 'int n_udf_data = sizeof(udf_data)/sizeof(UDF_Data);' >> $@ - @echo '#include "version.h"' >> $@ - @echo 'void UDF_Inquire_Release(int *major, int *minor, int *revision)' >> $@ - @echo '{' >> $@ - @echo ' *major = RampantReleaseMajor;' >> $@ - @echo ' *minor = RampantReleaseMinor;' >> $@ - @echo ' *revision = RampantReleaseRevision;' >> $@ - @echo '}' >> $@ - -udf_names.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(INCLUDES) -c $*.c - -alpha: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ALPHA)" "LD=cc" "LDFLAGS=$(LDFLAGS_ALPHA)" - -hpux10p8: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX10P8)" "LDFLAGS=$(LDFLAGS_HPUX10P8)" - -hpux11: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11)" "LDFLAGS=$(LDFLAGS_HPUX11)" - -hpux11_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11_64)" "LDFLAGS=$(LDFLAGS_HPUX11_64)" - -hpux11_ia64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11_ia64)" "LDFLAGS=$(LDFLAGS_HPUX11_ia64)" - -hiux:: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HIUX)" "LDFLAGS=$(LDFLAGS_HIUX)" - -irix65: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65)" "LDFLAGS=$(LDFLAGS_IRIX65)" - -irix65_mips4: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65_MIPS4)" "LDFLAGS=$(LDFLAGS_IRIX65_MIPS4)" - -irix65_mips4_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65_MIPS4_64)" "LDFLAGS=$(LDFLAGS_IRIX65_MIPS4_64)" - -aix43: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_AIX43)" "LDFLAGS=$(LDFLAGS_AIX43)" "LD=makeshared" - -aix51 power3: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_POWER3)" "LDFLAGS=$(LDFLAGS_POWER3)" "LD=makeshared" - -aix51_64 power3_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_POWER3_64)" "LDFLAGS=$(LDFLAGS_POWER3_64)" "LD=makeshared" - -ultra: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ULTRA)" "LDFLAGS=$(LDFLAGS_ULTRA)" - -ultra_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ULTRA_64)" "LDFLAGS=$(LDFLAGS_ULTRA_64)" - -fujitsu_pp: - $(MAKE) $(TARGET) "CC=/opt/FSUNf90/bin/fcc" "CFLAGS=$(CFLAGS_FUJITSU_PP)" "LDFLAGS=$(LDFLAGS_FUJITSU_PP)" - -lnx86 lnx86_rh8: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNX86)" "LDFLAGS=$(LDFLAGS_LNX86)" - -lnamd64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNAMD64)" "LDFLAGS=$(LDFLAGS_LNAMD64)" - -lop64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LOP64)" "LDFLAGS=$(LDFLAGS_LOP64)" - -lnia64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNIA64)" "LDFLAGS=$(LDFLAGS_LNIA64)" "LD=$(CC)" - -gcc: - if [ ! -f sunmath.h ]; then \ - ln -s /usr/include/math.h sunmath.h ; \ - fi; \ - $(MAKE) $(TARGET) CC=gcc LD=gcc "CFLAGS=$(CFLAGS_GCC)" "LDFLAGS=$(LDFLAGS_GCC)" - rm sunmath.h - -gcc64: - if [ ! -f sunmath.h ]; then \ - ln -s /usr/include/math.h sunmath.h ; \ - fi; \ - $(MAKE) $(TARGET) CC=gcc LD=gcc "CFLAGS=$(CFLAGS_GCC64)" "LDFLAGS=$(LDFLAGS_GCC64)" - rm sunmath.h - -clean: - @rm -f $(TARGET) $(UDFDATA) $(OBJECTS) - -$(OBJECTS): $(HSOURCES) diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/train_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/train_udf.c deleted file mode 120000 index f16b7c7..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/train_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/train_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_maker_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_maker_udf.c deleted file mode 120000 index a637e91..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_maker_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_maker_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile.c deleted file mode 120000 index e28c65f..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile.c +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile.h b/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile.h deleted file mode 120000 index a261b4f..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile.h +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile.h \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile_udf.c deleted file mode 120000 index 674c2db..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile_udf.h b/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile_udf.h deleted file mode 120000 index e86b1ff..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/wave_profile_udf.h +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile_udf.h \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi.c deleted file mode 120000 index 035f5c3..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi.h b/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi.h deleted file mode 120000 index 4dc3e8d..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi.h +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi.h \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_and_wave_profile_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_and_wave_profile_udf.c deleted file mode 120000 index e589ec1..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_and_wave_profile_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_and_wave_profile_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_extrafunctions.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_extrafunctions.c deleted file mode 120000 index 88c85a8..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_extrafunctions.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_extrafunctions.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_udf.c deleted file mode 120000 index 91b7f19..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/fsi_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/makefile b/examples/Cavity2D/libudf/lnamd64/2ddp_node/makefile deleted file mode 100755 index 0cc5b5d..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/makefile +++ /dev/null @@ -1,239 +0,0 @@ -## -## Copyright 2003-2011 ANSYS, Inc. -## All Rights Reserved -## - -#----------------------------------------------------------------------# -# makefile for user defined functions. -#----------------------------------------------------------------------# - - -#----------------------------------------------------------------------# -# User modifiable section. -#----------------------------------------------------------------------# -include user.udf - -# Precompiled User Object files (for example .o files from .f sources) -# Path of the python lib may vary and needs to be adapted -# would also be nice to search for it automatically - -USER_OBJECTS=`pkg-config --cflags --libs libprecice` /home/ishaan/ansys_inc/v195/commonfiles/CPython/2_7_15/linx64/Release/python/lib/libpython2.7.so - - -#----------------------------------------------------------------------# -# Build targets (do not modify below this line). -#----------------------------------------------------------------------# -CC=cc -SHELL=/bin/sh -RELEASE=19.5.0 -VERSION=`basename "\`pwd\`"` -ARCH=`expr "\`pwd\`" : '.*/\(.*\)/[23].*'` -ARCHC=$(ARCH) -TARGET=libudf.so -UDFDATA=udf_names.c -SOURCES= $(CSOURCES) $(HSOURCES) -OBJS1 = $(CSOURCES:.cpp=.o) -OBJS2 = $(OBJS1:.c=.o) -OBJECTS= $(UDFDATA:.c=.o) $(OBJS2) - -INCLUDES= `pkg-config --cflags libprecice`/precice \ - -I$(FLUENT_INC)/fluent$(RELEASE)/$(ARCH)/$(VERSION) \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/main \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/addon-wrapper \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/io \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/species \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/pbns \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/numerics \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/sphysics \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/storage \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/mphase \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/bc \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/models \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/material \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/amg \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/util \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/mesh \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/udf \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/ht \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dx \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/turbulence \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/parallel \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/etc \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/ue \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dpm \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dbns \ - -I$(FLUENT_INC)/fluent$(RELEASE)/cortex/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/client/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/tgrid/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/mpi_wrapper/include \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/mpi_wrapper/src\ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/acoustics \ - -I. - -CFLAGS_ALPHA= -call_shared -fast -w0 -std1 -CFLAGS_HPUX10P8= +z -O +w1 -Aa -D_HPUX_SOURCE -CFLAGS_HPUX11= +z -O +w1 -Aa -D_HPUX_SOURCE -CFLAGS_HPUX11_64= +z -O +w1 -Aa -D_HPUX_SOURCE +DD64 +DA2.0W -CFLAGS_HPUX11_ia64= -O +DD64 +DSblended -Ae -CFLAGS_HIUX= -CFLAGS_IRIX65= -KPIC -xansi -fullwarn -O -n32 -mips3 -CFLAGS_IRIX65_MIPS4= -KPIC -xansi -fullwarn -O -n32 -mips4 -CFLAGS_IRIX65_MIPS4_64= -KPIC -xansi -fullwarn -O3 -64 -mips4 -OPT:IEEE_arithmetic=3:roundoff=3:Olimit=8000 -LNO:fusion=2:fission=0:prefetch=2 -signed -CFLAGS_AIX43= -O -qalign=natural -CFLAGS_POWER3= -O3 -qlanglvl=ansi -qarch=pwr3 -qfloat=hssngl -qansialias -qnolm -qalign=natural -CFLAGS_POWER3_64= -O -q64 -qnolm -qalign=natural -CFLAGS_ULTRA= -KPIC -fast -v -CFLAGS_ULTRA_64= -KPIC -fast -v -xarch=v9 -CFLAGS_FUJITSU_PP= -Kfast_GP=2,prefetch,V9 -CFLAGS_LNX86= -fpic -shared -ansi -Wall -m32 -O # options for CC= gcc -CFLAGS_LNAMD64= -D_lnamd64 -D_GNU_SOURCE -fpic -shared -Wall -O -DPTR_RESTRICT= # options for CC= gcc -CFLAGS_LOP64= -D_lop64 -D_GNU_SOURCE -fpic -shared -Wall -O -DPTR_RESTRICT= # options for CC= gcc -CFLAGS_LNIA64= -fpic -shared -Wall -O -DPTR_RESTRICT= # gcc options -CFLAGS_GCC= -fpic -shared -Wall -O -DPTR_RESTRICT= -CFLAGS_GCC64= -fpic -shared -Wall -O -m64 -DPTR_RESTRICT= - -LDFLAGS_ALPHA= -shared -lm -LDFLAGS_HPUX10P8= -b -lm -LDFLAGS_HPUX11= -b -lm -LDFLAGS_HPUX11_64= -b -lm -LDFLAGS_HPUX11_ia64= -b -lm -LDFLAGS_HIUX= -b -lm -LDFLAGS_IRIX65= -shared -n32 -mips3 -lm -LDFLAGS_IRIX65_MIPS4= -shared -n32 -mips4 -lm -LDFLAGS_IRIX65_MIPS4_64= -shared -64 -mips4 -lm -LDFLAGS_AIX43= -LDFLAGS_POWER3= -LDFLAGS_POWER3_64= -b64 -lmass -lm -LDFLAGS_ULTRA= -G -lm -LDFLAGS_ULTRA_64= -G -lm -LDFLAGS_FUJITSU_PP= -G -lm -LDFLAGS_LNX86= -shared -lm -m elf_i386 -LDFLAGS_LNAMD64= -shared -lm -LDFLAGS_LOP64= -shared -lm -LDFLAGS_LNIA64= -shared -lm -LDFLAGS_GCC= -shared -lm -LDFLAGS_GCC64= -shared -lm - -ifeq "$(GPU_SUPPORT)" "on" -INCLUDES+= -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/gpu_wrapper/include -LDFLAGS_LNAMD64+= -L$(FLUENT_INC)/fluent$(RELEASE)/multiport/gpu_wrapper/$(ARCH)/stub -lOpenCL -endif - -.c.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(HOST_FLAGS) $(INCLUDES) -c $*.c - -.cpp.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(HOST_FLAGS) $(INCLUDES) -c $*.cpp - -default: $(UDFDATA) - @$(MAKE) $(ARCHC) - -$(TARGET): makefile user.udf $(UDFDATA) $(OBJECTS) - @echo "# Linking $@ because of $?" - $(CC) $(LDFLAGS) $(OBJECTS) $(USER_OBJECTS) -o $@ - -$(UDFDATA): makefile $(CSOURCES) - @echo '# Generating $@ because of $?' - @echo '/* This file generated automatically. */' > $@ - @echo '/* Do not modify. */' >> $@ - @echo '#include "udf.h"' >> $@ - @echo '#include "prop.h"' >> $@ - @echo '#include "dpm.h"' >> $@ - @sed -n 's/^ *\(DEFINE_[_A-Z]* *([^{]*)\)[{ ]*/extern \1;/p' $(CSOURCES) >> $@ - @echo 'UDF_Data udf_data[] = {' >> $@ - @sed -n 's/^ *DEFINE_\([_A-Z]*\) *( *\([_a-zA-Z0-9]*\)[^{]*)[{ ]*/\{"\2", (void (*)(void))\2, UDF_TYPE_\1\},/p' $(CSOURCES) >> $@ - @echo '};' >> $@ - @echo 'int n_udf_data = sizeof(udf_data)/sizeof(UDF_Data);' >> $@ - @echo '#include "version.h"' >> $@ - @echo 'void UDF_Inquire_Release(int *major, int *minor, int *revision)' >> $@ - @echo '{' >> $@ - @echo ' *major = RampantReleaseMajor;' >> $@ - @echo ' *minor = RampantReleaseMinor;' >> $@ - @echo ' *revision = RampantReleaseRevision;' >> $@ - @echo '}' >> $@ - -udf_names.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(INCLUDES) -c $*.c - -alpha: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ALPHA)" "LD=cc" "LDFLAGS=$(LDFLAGS_ALPHA)" - -hpux10p8: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX10P8)" "LDFLAGS=$(LDFLAGS_HPUX10P8)" - -hpux11: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11)" "LDFLAGS=$(LDFLAGS_HPUX11)" - -hpux11_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11_64)" "LDFLAGS=$(LDFLAGS_HPUX11_64)" - -hpux11_ia64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11_ia64)" "LDFLAGS=$(LDFLAGS_HPUX11_ia64)" - -hiux:: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HIUX)" "LDFLAGS=$(LDFLAGS_HIUX)" - -irix65: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65)" "LDFLAGS=$(LDFLAGS_IRIX65)" - -irix65_mips4: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65_MIPS4)" "LDFLAGS=$(LDFLAGS_IRIX65_MIPS4)" - -irix65_mips4_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65_MIPS4_64)" "LDFLAGS=$(LDFLAGS_IRIX65_MIPS4_64)" - -aix43: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_AIX43)" "LDFLAGS=$(LDFLAGS_AIX43)" "LD=makeshared" - -aix51 power3: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_POWER3)" "LDFLAGS=$(LDFLAGS_POWER3)" "LD=makeshared" - -aix51_64 power3_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_POWER3_64)" "LDFLAGS=$(LDFLAGS_POWER3_64)" "LD=makeshared" - -ultra: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ULTRA)" "LDFLAGS=$(LDFLAGS_ULTRA)" - -ultra_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ULTRA_64)" "LDFLAGS=$(LDFLAGS_ULTRA_64)" - -fujitsu_pp: - $(MAKE) $(TARGET) "CC=/opt/FSUNf90/bin/fcc" "CFLAGS=$(CFLAGS_FUJITSU_PP)" "LDFLAGS=$(LDFLAGS_FUJITSU_PP)" - -lnx86 lnx86_rh8: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNX86)" "LDFLAGS=$(LDFLAGS_LNX86)" - -lnamd64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNAMD64)" "LDFLAGS=$(LDFLAGS_LNAMD64)" - -lop64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LOP64)" "LDFLAGS=$(LDFLAGS_LOP64)" - -lnia64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNIA64)" "LDFLAGS=$(LDFLAGS_LNIA64)" "LD=$(CC)" - -gcc: - if [ ! -f sunmath.h ]; then \ - ln -s /usr/include/math.h sunmath.h ; \ - fi; \ - $(MAKE) $(TARGET) CC=gcc LD=gcc "CFLAGS=$(CFLAGS_GCC)" "LDFLAGS=$(LDFLAGS_GCC)" - rm sunmath.h - -gcc64: - if [ ! -f sunmath.h ]; then \ - ln -s /usr/include/math.h sunmath.h ; \ - fi; \ - $(MAKE) $(TARGET) CC=gcc LD=gcc "CFLAGS=$(CFLAGS_GCC64)" "LDFLAGS=$(LDFLAGS_GCC64)" - rm sunmath.h - -clean: - @rm -f $(TARGET) $(UDFDATA) $(OBJECTS) - -$(OBJECTS): $(HSOURCES) diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/train_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/train_udf.c deleted file mode 120000 index f16b7c7..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/train_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/train_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/udf_names.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/udf_names.c deleted file mode 100644 index c4b7fe2..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/udf_names.c +++ /dev/null @@ -1,23 +0,0 @@ -/* This file generated automatically. */ -/* Do not modify. */ -#include "udf.h" -#include "prop.h" -#include "dpm.h" -extern DEFINE_INIT(init,domain); -extern DEFINE_ON_DEMAND(write_and_advance); -extern DEFINE_GRID_MOTION(gridmotions,domain,dt,time,dtime); -extern DEFINE_ON_DEMAND(plot_coords); -UDF_Data udf_data[] = { -{"init", (void (*)(void))init, UDF_TYPE_INIT}, -{"write_and_advance", (void (*)(void))write_and_advance, UDF_TYPE_ON_DEMAND}, -{"gridmotions", (void (*)(void))gridmotions, UDF_TYPE_GRID_MOTION}, -{"plot_coords", (void (*)(void))plot_coords, UDF_TYPE_ON_DEMAND}, -}; -int n_udf_data = sizeof(udf_data)/sizeof(UDF_Data); -#include "version.h" -void UDF_Inquire_Release(int *major, int *minor, int *revision) -{ - *major = RampantReleaseMajor; - *minor = RampantReleaseMinor; - *revision = RampantReleaseRevision; -} diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/user.udf b/examples/Cavity2D/libudf/lnamd64/2ddp_node/user.udf deleted file mode 100644 index 4d30ed8..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/user.udf +++ /dev/null @@ -1,5 +0,0 @@ -CSOURCES= fsi_udf.c fsi.c -HSOURCES= fsi.h -FLUENT_INC=/home/ishaan/ansys_inc/v195/fluent -HOST_FLAGS=-DUSE_UDF_HOST_DUMMY -GPU_SUPPORT=off diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_maker_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_maker_udf.c deleted file mode 120000 index a637e91..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_maker_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_maker_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile.c deleted file mode 120000 index e28c65f..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile.c +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile.h b/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile.h deleted file mode 120000 index a261b4f..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile.h +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile.h \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile_udf.c b/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile_udf.c deleted file mode 120000 index 674c2db..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile_udf.c +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile_udf.c \ No newline at end of file diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile_udf.h b/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile_udf.h deleted file mode 120000 index e86b1ff..0000000 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_node/wave_profile_udf.h +++ /dev/null @@ -1 +0,0 @@ -../../src/wave_profile_udf.h \ No newline at end of file diff --git a/examples/Cavity2D/libudf/src/fsi.c b/examples/Cavity2D/libudf/src/fsi.c deleted file mode 100644 index e760c8b..0000000 --- a/examples/Cavity2D/libudf/src/fsi.c +++ /dev/null @@ -1,673 +0,0 @@ -#include "fsi.h" -#include "SolverInterfaceC.h" -#include -#include -#include -#include - -#ifdef BOOL_TRUE -#error BOOL_TRUE already defined! -#endif - -#ifdef BOOL_FALSE -#error BOOL_TRUE already defined! -#endif - -#define BOOL_TRUE 1 -#define BOOL_FALSE 0 - -double timestep_limit = 0.0; -double* forces = NULL; -int* force_indices = NULL; -int skip_grid_motion = BOOL_TRUE; -int did_gather_write_positions = BOOL_FALSE; -int did_gather_read_positions = BOOL_FALSE; -int thread_index = 0; -int dynamic_thread_size = 0; -int wet_edges_size = 0; -int wet_nodes_size = 0; -int boundary_nodes_size = 0; -int deformable_nodes_size = 0; -int moved_nodes_counter = 0; -double* initial_coords = NULL; -double* boundary_coords = NULL; /* MESH MOVEMENT */ -double* displacements = NULL; -int* displ_indices = NULL; -int* dynamic_thread_node_size = NULL; -double* c_matrix = NULL; -double* x_coeff_vector = NULL; -double* y_coeff_vector = NULL; -double* b_vector = NULL; -int* pivots_vector = NULL; -int comm_size = -1; -int require_create_checkpoint = BOOL_FALSE; -int* precice_force_ids; /* Gathered in host node (or serial node) */ -int* precice_displ_ids; - -#if ND_ND == 2 -#define norm(a, b) sqrt((a[0]-b[0])*(a[0]-b[0]) + (a[1]-b[1])*(a[1]-b[1])) -#else -#error Not implemented! -#endif - -/* Forward declarations of helper functions */ -void count_dynamic_threads(); -void write_forces(); -void read_displacements(Dynamic_Thread* dt); -int check_write_positions(); -int check_read_positions(Dynamic_Thread* dt); -void set_mesh_positions(Domain* domain); - -/* This function creates the solver interface named "Fluent" and initializes - * the interface - * fsi_init is directly called by FLUENT UDF Functionality - * */ -void fsi_init(Domain* domain) -{ - int precice_process_id = -1; /* Process ID given to preCICE */ - printf("\nEntering fsi_init\n"); - - /* Only Host Process (Rank 0) handles the coupling interface */ - #if !RP_HOST - - #if !PARALLEL - precice_process_id = 0; - comm_size = 1; - #else /* !PARALLEL*/ - #if RP_HOST - precice_process_id = 0; - #elif RP_NODE - precice_process_id = myid + 1; - #endif /* elif RP_NODE */ - comm_size = compute_node_count + 1; - #endif /* else !PARALLEL */ - - /* Parallel implementation above is bypassed for testing serial version */ - precice_process_id = 0; - comm_size = 1; - - Message(" (%d) Creating solver interface\n", myid); - - /* temporarily hard coding Solver name and preCICE Config File name */ - precicec_createSolverInterface("Fluent", "precice-config.xml", - precice_process_id, comm_size); - - count_dynamic_threads(); - - /* Set coupling mesh */ - set_mesh_positions(domain); - - Message(" (%d) Initializing coupled simulation\n", myid); - timestep_limit = precicec_initialize(); - Message(" (%d) Initialization done\n", myid); - - if (precicec_isActionRequired(precicec_actionWriteIterationCheckpoint())){ - Message(" (%d) Implicit coupling\n", myid); - #if !RP_NODE - RP_Set_Integer("udf/convergence", BOOL_FALSE); - RP_Set_Integer("udf/iterate", BOOL_TRUE); - #endif /* ! RP_NODE */ - precicec_markActionFulfilled(precicec_actionWriteIterationCheckpoint()); - } - else { - Message(" (%d) Explicit coupling\n", myid); - } - - Message(" (%d) Synchronizing Fluent processes\n", myid); - PRF_GSYNC(); - - printf("(%d) Leaving INIT\n", myid); - #endif /* !RP_HOST */ -} - -/* Main function advances the interface time step and provides the mechanism - * for proper coupling scheme to be applied - * fsi_write_and_advance is directly called by FLUENT UDF functionality - * */ -void fsi_write_and_advance() -{ - /* Only the host process (Rank 0) handles the writing of data and advancing coupling */ - #if !RP_HOST - - printf("(%d) Entering ON_DEMAND(write_and_advance)\n", myid); - int ongoing; - int subcycling = !precicec_isWriteDataRequired(CURRENT_TIMESTEP); - int current_size = -1; - - if (subcycling){ - Message(" (%d) In subcycle, skip writing\n", myid); - } - else { - if (wet_edges_size){ - write_forces(); - } - } - - timestep_limit = precicec_advance(CURRENT_TIMESTEP); - - /* Read coupling state */ - ongoing = precicec_isCouplingOngoing(); - #if !RP_NODE - RP_Set_Integer("udf/ongoing", ongoing); - #endif /* !RP_NODE */ - - if (precicec_isActionRequired(precicec_actionWriteIterationCheckpoint())){ - #if !RP_NODE - RP_Set_Integer("udf/convergence", BOOL_TRUE); - #endif /* !RP_NODE */ - precicec_markActionFulfilled(precicec_actionWriteIterationCheckpoint()); - } - - if (precicec_isActionRequired(precicec_actionReadIterationCheckpoint())){ - #if !RP_NODE - RP_Set_Integer("udf/convergence", BOOL_FALSE); - #endif /* !RP_NODE */ - precicec_markActionFulfilled(precicec_actionReadIterationCheckpoint()); - } - - #if !RP_NODE - if (! precicec_isCouplingOngoing()){ - RP_Set_Integer("udf/convergence", BOOL_TRUE); - } - #endif /* !RP_NODE */ - - printf("(%d) Leaving ON_DEMAND(write_and_advance)\n", myid); - #endif /* !RP_HOST */ -} - -/* Function to be attached to the Dynamic Mesh in FLUENT in the form of a UDF. - * This function will read the displacements values from interface and move the - * structural mesh accordingly - * fsi_grid_motion is directly related to mesh motion in FLUENT UDF Functionality - * */ -void fsi_grid_motion(Domain* domain, Dynamic_Thread* dt, real time, real dtime) -{ - /* Only the host process (Rank 0) handles grid motion and displacement calculations */ - #if !RP_HOST - - printf("\n(%d) Entering GRID_MOTION\n", myid); - int current_thread_size = -1; - - if (thread_index == dynamic_thread_size){ - printf ("Reset thread index\n"); - thread_index = 0; - } - printf(" (%d) Thread index = %d\n", myid, thread_index); - Thread* face_thread = DT_THREAD(dt); - - if (strncmp("gridmotions", dt->profile_udf_name, 11) != 0){ - printf(" (%d) ERROR: called gridmotions for invalid dynamic thread: %s\n", - myid, dt->profile_udf_name); - exit(1); - } - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - exit(1); - } - - if (skip_grid_motion){ - if (thread_index >= dynamic_thread_size-1){ - skip_grid_motion = BOOL_FALSE; - } - thread_index++; - printf(" (%d) Skipping first round grid motion\n", myid); - return; - } - - SET_DEFORMING_THREAD_FLAG(THREAD_T0(face_thread)); - - read_displacements(dt); - thread_index++; - - #if !RP_NODE - - Message(" (%d) convergence=%d, iterate=%d, couplingOngoing=%d\n", - myid, RP_Get_Integer("udf/convergence"), RP_Get_Integer("udf/iterate"), - precicec_isCouplingOngoing()); - if (RP_Get_Integer("udf/convergence") && RP_Get_Integer("udf/iterate") && precicec_isCouplingOngoing()){ - RP_Set_Integer("udf/convergence", BOOL_FALSE); - } - - #endif /* !RP_NODE */ - - if (! precicec_isCouplingOngoing()){ - precicec_finalize(); - } - - printf("(%d) Leaving GRID_MOTION\n", myid); - - #endif /* !RP_HOST */ -} - -/* Helper function to plot FSI coordinates (not related to preCICE - * functionality) */ -void fsi_plot_coords() -{ - printf("(%d) Entering ON_DEMAND(plot_coords)\n", myid); - - #if !RP_HOST - int i=0, n=0; - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - face_t face; - Node* node = NULL; - - domain = Get_Domain(1); - if (domain == NULL){ - printf(" (%d) ERROR: domain == NULL\n", myid); - fflush(stdout); - exit(1); - } - if (domain->dynamic_threads == NULL){ - printf(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - fflush(stdout); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - fflush(stdout); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE ( face, face_thread, n ); - if ((NODE_MARK(node) != 0) && ((NODE_MARK(node) != 1234))){ - printf(" (%d) ERROR: Unexpected node mark!\n", myid); - fflush(stdout); - exit(1); - } - if (NODE_MARK(node) != 1234){ - NODE_MARK(node) = 1234; - /*if (i < 2){*/ - /*Message("coords: %.16E, %.16E\n", NODE_COORD(node)[0], NODE_COORD(node)[1]);*/ - /*fflush(stdout);*/ - /*}*/ - i++; - } - } - } - } end_f_loop(face, face_thread); - } - dynamic_thread = dynamic_thread->next; - } - - /* Reset node mark */ - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - fflush(stdout); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE ( face, face_thread, n ); - if (NODE_MARK(node) == 1234){ - NODE_MARK(node) = 0; - } - } - } - } end_f_loop(face, face_thread); - } - dynamic_thread = dynamic_thread->next; - } - #endif /* ! RP_HOST */ - - printf("(%d) Leaving ON_DEMAND(plot_coords)\n", myid); -} - -void count_dynamic_threads() -{ - printf("(%d) Entering count_dynamic_threads()\n", myid); - Domain *domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - face_t face; - int node_index, i=0; - Node* node = NULL; - - Message( " (%d) counting dynamic threads:\n", myid); - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit (1); - } - dynamic_thread = domain->dynamic_threads; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - face_thread = DT_THREAD(dynamic_thread); - begin_f_loop (face, face_thread){ /* Thread face loop */ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, node_index){ /* Face node loop */ - node = F_NODE(face, face_thread, node_index); - NODE_MARK(node) = 11111; - } - } - } end_f_loop(face, face_thread) - dynamic_thread_size++; - } - dynamic_thread = dynamic_thread->next; - } - dynamic_thread_node_size = (int*) malloc(dynamic_thread_size * sizeof(int)); - for (i=0; i < dynamic_thread_size; i++){ - dynamic_thread_node_size[i] = 0; - } - - /* Reset node marks */ - dynamic_thread = domain->dynamic_threads; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - face_thread = DT_THREAD(dynamic_thread); - begin_f_loop (face, face_thread){ /* Thread face loop */ - f_node_loop (face, face_thread, node_index){ /* Face node loop */ - node = F_NODE(face, face_thread, node_index); - NODE_MARK(node) = 0; - } - } end_f_loop(face, face_thread) - } - dynamic_thread = dynamic_thread->next; - } - printf(" (%d) ... %d\n", myid, dynamic_thread_size); - printf("(%d) Leaving count_dynamic_threads()\n", myid); -} - -void set_mesh_positions(Domain* domain) -{ - /* Only the host process (Rank 0) handles grid motion and displacement calculations */ - #if !RP_HOST - - printf("(%d) Entering set_mesh_positions()\n", myid); - Thread* face_thread = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Node* node; - face_t face; - int n = 0, dim = 0, array_index = 0; - int meshID = precicec_getMeshID("moving_base"); - - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - fflush(stdout); - exit(1); - } - - /* Count number of interface vertices and dynamic_thread_node_size */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop(face, face_thread, n){ - node = F_NODE(face, face_thread, n); - wet_nodes_size++; - dynamic_thread_node_size[thread_index]++; - } - } - } end_f_loop(face, face_thread); - - printf(" (%d) Setting %d initial positions ...\n", myid, wet_nodes_size); - - /* Providing mesh information to preCICE */ - initial_coords = (double*) malloc(wet_nodes_size * ND_ND * sizeof(double)); - displacements = (double*) malloc(wet_nodes_size * ND_ND * sizeof(double)); - displ_indices = (int*) malloc(wet_nodes_size * sizeof(int)); - array_index = wet_nodes_size - dynamic_thread_node_size[thread_index]; - - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop(face, face_thread, n){ - node = F_NODE(face, face_thread, n); - NODE_MARK(node) = 1; /*Set node to need update*/ - for (dim = 0; dim < ND_ND; dim++){ - initial_coords[array_index*ND_ND+dim] = NODE_COORD(node)[dim]; - } - array_index++; - } - } - } end_f_loop(face, face_thread); - - int counter = 0; - for (int i=0; i 0){ - Message(" (%d) Reading displacements...\n", myid); - offset = 0; - for (i = 0; i < thread_index; i++){ - offset += dynamic_thread_node_size[i]; - } - printf("data size for readBlockVectorData = %d\n",dynamic_thread_node_size[thread_index]); - precicec_readBlockVectorData(displID, dynamic_thread_node_size[thread_index], - displ_indices + offset, displacements + ND_ND * offset); - printf("After readBlockVectorData\n"); - - Message(" (%d) Setting displacements...\n", myid); - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_POS_UPDATED(node); - for (dim=0; dim < ND_ND; dim++){ - NODE_COORD(node)[dim] = initial_coords[i+dim] + displacements[i+dim]; - if (fabs(displacements[i+dim]) > fabs(max_displ_delta)){ - max_displ_delta = displacements[i + dim]; - } - debug_displ[dim] = initial_coords[i+dim] + displacements[i+dim]; - } - printf("Setting displacement for index[%d] = (%f, %f)\n",i, - debug_displ[0], debug_displ[1]); - i += ND_ND; - } - } - } - } end_f_loop (face, face_thread); - - Message(" (%d) ...done\n", myid); - } - Message(" (%d) Max displacement delta: %f\n", myid, max_displ_delta); -} - -/* This function writes the new forces on the structure calculated in FLUENT to the - * Structural solver - */ -void write_forces() -{ - int meshID = precicec_getMeshID("moving_base"); - int forceID = precicec_getDataID("Forces", meshID); - int i=0, j=0; - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - int thread_counter = 0; - real area[ND_ND]; - real pressure_force[ND_ND]; - real viscous_force[ND_ND]; - double total_force[ND_ND]; - double max_force = 0.0; - - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - Message(" (%d) Gather forces...\n", myid); - i = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - Message(" (%d) Thread index %d\n", myid, thread_counter); - Thread* face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - Message(" (%d) ERROR: face_thread == NULL\n", myid); - exit(1); - } - face_t face; - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - F_AREA(area, face, face_thread); - NV_VS(viscous_force, =, F_STORAGE_R_N3V(face,face_thread,SV_WALL_SHEAR),*,-1.0); - NV_VS(pressure_force, =, area, *, F_P(face,face_thread)); - NV_VV(total_force, =, viscous_force, +, pressure_force); - for (j=0; j < ND_ND; j++){ - forces[i + j] = total_force[j]; - if (fabs(total_force[j]) > fabs(max_force)){ - max_force = total_force[j]; - } - } - i += ND_ND; - } - } end_f_loop(face, face_thread); - thread_counter++; - } - dynamic_thread = dynamic_thread->next; - } - Message(" (%d) ...done (with %d force values)\n", myid, i); - Message(" (%d) Writing forces...\n", myid); - precicec_writeBlockVectorData(forceID, wet_edges_size, force_indices, forces); - Message(" (%d) ...done\n", myid ); - Message(" (%d) Max force: %f\n", max_force); - if (thread_counter != dynamic_thread_size){ - Message ( " (%d) ERROR: Number of dynamic threads has changed to %d!\n", myid, thread_counter ); - exit(1); - } -} - -int check_write_positions() -{ - #if !RP_HOST - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - int thread_counter = 0; - face_t face; - int wet_edges_check_size = 0; - - Message(" (%d) Checking write positions...\n", myid); - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - /*Message("\n (%d) Thread index %d\n", myid, thread_counter);*/ - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - Message(" (%d) ERROR: Thread %d: face_thread == NULL\n", myid, thread_counter); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - wet_edges_check_size++; - } - } end_f_loop(face, face_thread); - thread_counter++; - } - dynamic_thread = dynamic_thread->next; - } - Message(" (%d) ...done (currently %d wet edges, old is %d)", myid, - wet_edges_check_size, wet_edges_size); - if (wet_edges_check_size != wet_edges_size) { - return wet_edges_check_size; - } - #endif /* ! RP_HOST */ - return -1; -} - -int check_read_positions(Dynamic_Thread* dt) -{ - Message(" (%d) Checking read positions...\n", myid); - int i = 0, n = 0; - Thread* face_thread = DT_THREAD(dt); - Node* node; - face_t face; - - /* Count nodes */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_MARK(node) = 12345; - i++; - } - } - } - } end_f_loop(face, face_thread); - - /* Reset node marks */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_MARK(node) == 12345){ - NODE_MARK(node) = 1; /* Set node to need update*/ - } - } - } - } end_f_loop(face, face_thread); - - if (i != dynamic_thread_node_size[thread_index]){ - Message(" (%d) Wet node count has changed for dynamic thread %d!\n", - myid, thread_index); - return i; - } - return -1; -} diff --git a/examples/Cavity2D/libudf/src/fsi.h b/examples/Cavity2D/libudf/src/fsi.h deleted file mode 100644 index ab82426..0000000 --- a/examples/Cavity2D/libudf/src/fsi.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef FSI_H_ -#define FSI_H_ - -#include "udf.h" -#include "dynamesh_tools.h" - -void fsi_init(Domain* domain); -void fsi_write_and_advance(); -void fsi_grid_motion(Domain* domain, Dynamic_Thread* dt, real time, real dtime); -void fsi_plot_coords(); - -#endif /* FSI_H_ */ diff --git a/examples/Cavity2D/libudf/src/fsi_and_wave_profile_udf.c b/examples/Cavity2D/libudf/src/fsi_and_wave_profile_udf.c deleted file mode 100644 index 99e2332..0000000 --- a/examples/Cavity2D/libudf/src/fsi_and_wave_profile_udf.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "fsi.h" -#include "wave_profile.h" - -DEFINE_INIT(init,domain) -{ - wave_profile_init(domain); - fsi_init(domain); -} - -DEFINE_PROFILE(MP_wave_x_velocity,face_thread,var_index) -{ - wave_profile_x_velocity(face_thread, var_index); -} - -DEFINE_PROFILE(MP_wave_y_velocity, face_thread, var_index) -{ - wave_profile_y_velocity(face_thread, var_index); -} - -DEFINE_PROFILE(MP_wave_volume_fraction, face_thread, var_index) -{ - wave_profile_volume_fraction(face_thread, var_index); -} - -DEFINE_ON_DEMAND(write_and_advance) -{ - fsi_write_and_advance(); -} - -DEFINE_GRID_MOTION(gridmotions,domain,dt,time,dtime) -{ - fsi_grid_motion(domain, dt, time, dtime); -} diff --git a/examples/Cavity2D/libudf/src/fsi_extrafunctions.c b/examples/Cavity2D/libudf/src/fsi_extrafunctions.c deleted file mode 100644 index 55fcfa4..0000000 --- a/examples/Cavity2D/libudf/src/fsi_extrafunctions.c +++ /dev/null @@ -1,361 +0,0 @@ -#include "fsi.h" -#include "SolverInterfaceC.h" -#include -#include -#include -#include - -#ifdef BOOL_TRUE -#error BOOL_TRUE already defined! -#endif - -#ifdef BOOL_FALSE -#error BOOL_TRUE already defined! -#endif - -#define BOOL_TRUE 1 -#define BOOL_FALSE 0 - -/* Old functions which are not important at this point of time */ - -void gather_write_positions() -{ - printf("(%d) Entering gather_write_positions()\n", myid); - #if !RP_HOST - int meshID = precicec_getMeshID("moving_base"); - int i = 0; - double center[ND_ND]; - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - int thread_counter = 0; - face_t face; - - Message(" (%d) Counting wet edges...\n", myid); - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - Message("\n (%d) Thread index %d\n", myid, thread_counter); - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - Message(" (%d) ERROR: face_thread == NULL\n", myid); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - wet_edges_size++; - } - } end_f_loop(face, face_thread); - thread_counter++; - } - dynamic_thread = dynamic_thread->next; - } - Message(" (%d) ...done (counted %d wet edges)\n", myid, wet_edges_size); - Message(" (%d) Allocating %d force vector values\n", myid, wet_edges_size * ND_ND); - if (forces != NULL){ - Message(" (%d) ERROR: Forces vector allocated multiple times!\n", myid); - } - forces = (double*) malloc(wet_edges_size * ND_ND * sizeof(double)); - Message(" (%d) Allocating %d force indices\n", myid, wet_edges_size); - force_indices = (int*) malloc(wet_edges_size * sizeof(int)); - /*force_indices_fluent = (int*) malloc(wet_edges_size * sizeof(int));*/ - Message(" (%d) Setting write positions...", myid); - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - i = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - Message("\n (%d) Thread index %d\n", myid, thread_counter); - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - fflush(stdout); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - F_CENTROID(center, face, face_thread); - force_indices[i] = precicec_setMeshVertex(meshID, center); - F_UDMI(face, face_thread, 0) = force_indices[i]; - i++; - } - } end_f_loop(face, face_thread); - thread_counter++; - } - dynamic_thread = dynamic_thread->next; - } - Message(" (%d) ...done counting wet edges\n", myid); - did_gather_write_positions = BOOL_TRUE; - #endif /* ! RP_HOST */ - - /* Gather precice read and write indices */ - #if PARALLEL - /*gather_precicec_write_indices();*/ - #endif /* PARALLEL */ - - /* Setup precice index tables for checkpoint and load balancing */ - #if !RP_NODE /* Host or serial */ - #endif /* ! RP_NODE */ - printf("(%d) Leaving gather_write_positions()\n", myid); -} - -void gather_read_positions(Dynamic_Thread* dt) -{ - printf("(%d) Entering gather_read_positions()\n", myid); - Thread* face_thread = DT_THREAD(dt); - Node* node; - face_t face; - int n = 0, dim = 0; - int array_index = 0, node_index = 0; - double coords[ND_ND]; - int meshID = precicec_getMeshID("moving_base"); - - /* Count not yet as updated (from other threads) marked nodes */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE ( face, face_thread, n ); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_MARK(node) = 12345; - wet_nodes_size++; - dynamic_thread_node_size[thread_index]++; - } - } - } - } end_f_loop(face, face_thread); - - /* Get initial coordinates and reset update marking */ - printf(" (%d) Reallocating %d initial positions ...\n", myid, wet_nodes_size); - initial_coords = (double*) realloc(initial_coords, wet_nodes_size * ND_ND * sizeof(double)); - displacements = (double*) realloc(displacements, wet_nodes_size * ND_ND * sizeof(double)); - displ_indices = (int*) realloc(displ_indices, wet_nodes_size * sizeof(int)); - array_index = wet_nodes_size - dynamic_thread_node_size[thread_index]; - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop(face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_MARK(node) == 12345){ - NODE_MARK(node) = 1; /*Set node to need update*/ - for (dim=0; dim < ND_ND; dim++){ - coords[dim] = NODE_COORD(node)[dim]; - initial_coords[array_index*ND_ND+dim] = coords[dim]; - } - node_index = precicec_setMeshVertex(meshID,coords); - displ_indices[array_index] = node_index; - array_index++; - } - } - } - } end_f_loop(face, face_thread); - printf(" (%d) Set %d (of %d) displacement read positions ...\n", myid, - array_index - wet_nodes_size + dynamic_thread_node_size[thread_index], - dynamic_thread_node_size[thread_index]); - - if (thread_index == dynamic_thread_size - 1){ - did_gather_read_positions = BOOL_TRUE; - } - printf("(%d) Leaving gather_read_positions()\n", myid); -} - -void regather_read_positions(Dynamic_Thread* dt, int thread_new_size) -{ - Message(" (%d) Regathering read positions...\n", myid); - int i = 0, j = 0, n = 0, dim = 0; - Thread* face_thread = DT_THREAD(dt); - Node* node; - face_t face; - int meshID = precicec_getMeshID("moving_base"); - int all_size = 100;/*precicec_getReadNodesSize(meshID); TODO: read mesh size from Fluent, 100 is just a dummy value!*/ - int displID = precicec_getDataID("Displacements", meshID); - double* new_coords = (double*) malloc(thread_new_size * ND_ND * sizeof(double)); - int* new_indices = (int*) malloc(thread_new_size * sizeof(double)); - double* all_coords = (double*) malloc(all_size * ND_ND * sizeof(double)); - double* all_displ = (double*) malloc(all_size * ND_ND * sizeof(double)); - int* vertexIDs = (int*) malloc(all_size * sizeof(int)); - double* tail_coords = NULL; - int* tail_indices = NULL; - /*double coords[ND_ND];*/ - int left_i, right_i; - int front_size, tail_size, new_size; - - for (i=0; i < all_size; i++){ - vertexIDs[i] = i; - } - precicec_readBlockVectorData(displID, all_size, vertexIDs, all_displ); - for (i=0; i < all_size*ND_ND; i++){ - if (i < all_size*ND_ND) { - printf(" (%d) coods %.16E\n", myid, all_coords[i]); - fflush(stdout); - } - all_coords[i] += all_displ[i]; - } - - /* Determine new indices, positions, and displacements */ - i = 0; - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_MARK(node) = 12345; - for (j=0; j < all_size; j++){ /* Find position index in all positions */ - for (dim=0; dim < ND_ND; dim++){ /* Vector equality comp */ - if (i < 10){ - printf(" (%d) %.16E == %.16E\n", myid, NODE_COORD(node)[dim], - all_coords[j*ND_ND+dim]); - fflush(stdout); - } - - if (fabs(NODE_COORD(node)[dim] - all_coords[j*ND_ND+dim]) > 1e-7){ - break; - } - } - if (dim == ND_ND){ /* If equal */ - /*printf(" (%d) Equal!\n", myid); fflush(stdout);*/ - new_indices[i] = vertexIDs[j]; - for (dim=0; dim < ND_ND; dim++){ - left_i = i*ND_ND+dim; - right_i = j*ND_ND+dim; - new_coords[left_i] = all_coords[right_i] - all_displ[right_i]; - } - break; - } - } - if (j == all_size){ - printf(" (%d) ERROR: Didn't find suitable index while regathering read indices!\n", myid); - fflush(stdout); - exit(1); - } - i++; - } - } - } - } end_f_loop(face, face_thread); - - /* Reset node marks */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_MARK(node) == 12345){ - NODE_MARK(node) = 1; /* Set node to need update*/ - } - } - } - } end_f_loop(face, face_thread); - - /* Count entries before this face thread and after it */ - front_size = 0; - for (i=0; i < thread_index; i++){ - front_size += dynamic_thread_node_size[i]; - } - tail_size = 0; - for (i=thread_index+1; i < dynamic_thread_size; i++){ - tail_size += dynamic_thread_node_size[i]; - } - tail_coords = (double*) malloc(tail_size*ND_ND*sizeof(double)); - tail_indices = (int*) malloc(tail_size*sizeof(int)); - - /* Store tail entries */ - for (i=0; i < tail_size; i++){ - j = front_size + dynamic_thread_node_size[thread_index] + i; - for (dim=0; dim < ND_ND; dim++){ - tail_coords[i*ND_ND+dim] = initial_coords[j*ND_ND+dim]; - } - tail_indices[i] = displ_indices[j]; - } - - /* Insert new and tail entries */ - new_size = front_size + thread_new_size + tail_size; - initial_coords = (double*) realloc(initial_coords, new_size * ND_ND * sizeof(double)); - displacements = (double*) realloc(displacements, new_size * ND_ND * sizeof(double)); - displ_indices = (int*) realloc(displ_indices, new_size * sizeof(int)); - for (i=0; i < thread_new_size; i++){ - j = front_size + i; - for (dim=0; dim < ND_ND; dim++){ - initial_coords[j*ND_ND+dim] = new_coords[i*ND_ND+dim]; - } - printf(" (%d) new index: %d\n", myid, new_indices[i]); - displ_indices[j] = new_indices[i]; - } - for (i=0; i < tail_size; i++){ - j = front_size + thread_new_size + i; - for (dim=0; dim < ND_ND; dim++){ - initial_coords[j*ND_ND+dim] = tail_coords[i*ND_ND+dim]; - } - displ_indices[j] = tail_indices[i]; - } - - wet_nodes_size -= dynamic_thread_node_size[thread_index]; - wet_nodes_size += thread_new_size; - dynamic_thread_node_size[thread_index] = thread_new_size; - - free(vertexIDs); - free(all_coords); - free(new_indices); - free(new_coords); - free(tail_indices); - free(tail_coords); - - Message(" (%d) ... done regathering read positions...\n", myid); fflush(stdout); -} - -void regather_write_positions(int current_size) -{ - #if !RP_HOST - int i = 0; - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - int thread_counter = 0; - face_t face; - - Message(" (%d) Regather write positions...\n", myid); - - forces = (double*) realloc(forces, current_size * ND_ND * sizeof(double)); - force_indices = (int*) realloc(force_indices, current_size * sizeof(int)); - - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - i = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - Message("\n (%d) Thread index %d\n", myid, thread_counter); - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - Message(" (%d) ERROR: face_thread == NULL\n", myid); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - force_indices[i] = F_UDMI(face, face_thread, 0); - i++; - } - } end_f_loop(face, face_thread); - thread_counter++; - } - dynamic_thread = dynamic_thread->next; - } - wet_edges_size = current_size; - Message(" (%d) ...done regathering write positions\n", myid); - #endif /* ! RP_HOST */ -} diff --git a/examples/Cavity2D/libudf/src/fsi_udf.c b/examples/Cavity2D/libudf/src/fsi_udf.c deleted file mode 100644 index 07b1dda..0000000 --- a/examples/Cavity2D/libudf/src/fsi_udf.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "fsi.h" - -/* This is a general purpose macro which does basic initialisation - * of all UDF relevant variables after the flow field has been - * initialised in Fluent - * Ref. ANSYS v19.1 ANSYS_Fluent_UDF_Manual.pdf Section 2.2.8 - * */ -DEFINE_INIT(init,domain) -{ - fsi_init(domain); -} - -/* This is a general purpose macro to have "on_demand" behavior. - * This macro will be executed immediately on activation but will - * not be available while the solver is iterating - * Ref. ANSYS v19.1 ANSYS_Fluent_UDF_Manual.pdf Section 2.2.9 - * */ -DEFINE_ON_DEMAND(write_and_advance) -{ - fsi_write_and_advance(); -} - -/* This macro is part of Dynamic Mesh DEFINE Marcos to define - * the behavior of a dynamic mesh. FLUENT dictates that this - * Macro works only as a compiled UDF - * Ref: ANSYS v19.1 ANSYS_Fluent_UDF_Manual.pdf Section 2.6.4 - * */ -DEFINE_GRID_MOTION(gridmotions,domain,dt,time,dtime) -{ - fsi_grid_motion(domain, dt, time, dtime); -} - -/* Same as above */ -DEFINE_ON_DEMAND(plot_coords) -{ - fsi_plot_coords(); -} - diff --git a/examples/Cavity2D/libudf/src/makefile b/examples/Cavity2D/libudf/src/makefile deleted file mode 100755 index 0cc5b5d..0000000 --- a/examples/Cavity2D/libudf/src/makefile +++ /dev/null @@ -1,239 +0,0 @@ -## -## Copyright 2003-2011 ANSYS, Inc. -## All Rights Reserved -## - -#----------------------------------------------------------------------# -# makefile for user defined functions. -#----------------------------------------------------------------------# - - -#----------------------------------------------------------------------# -# User modifiable section. -#----------------------------------------------------------------------# -include user.udf - -# Precompiled User Object files (for example .o files from .f sources) -# Path of the python lib may vary and needs to be adapted -# would also be nice to search for it automatically - -USER_OBJECTS=`pkg-config --cflags --libs libprecice` /home/ishaan/ansys_inc/v195/commonfiles/CPython/2_7_15/linx64/Release/python/lib/libpython2.7.so - - -#----------------------------------------------------------------------# -# Build targets (do not modify below this line). -#----------------------------------------------------------------------# -CC=cc -SHELL=/bin/sh -RELEASE=19.5.0 -VERSION=`basename "\`pwd\`"` -ARCH=`expr "\`pwd\`" : '.*/\(.*\)/[23].*'` -ARCHC=$(ARCH) -TARGET=libudf.so -UDFDATA=udf_names.c -SOURCES= $(CSOURCES) $(HSOURCES) -OBJS1 = $(CSOURCES:.cpp=.o) -OBJS2 = $(OBJS1:.c=.o) -OBJECTS= $(UDFDATA:.c=.o) $(OBJS2) - -INCLUDES= `pkg-config --cflags libprecice`/precice \ - -I$(FLUENT_INC)/fluent$(RELEASE)/$(ARCH)/$(VERSION) \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/main \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/addon-wrapper \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/io \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/species \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/pbns \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/numerics \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/sphysics \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/storage \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/mphase \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/bc \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/models \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/material \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/amg \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/util \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/mesh \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/udf \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/ht \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dx \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/turbulence \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/parallel \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/etc \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/ue \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dpm \ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/dbns \ - -I$(FLUENT_INC)/fluent$(RELEASE)/cortex/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/client/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/tgrid/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/src \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/mpi_wrapper/include \ - -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/mpi_wrapper/src\ - -I$(FLUENT_INC)/fluent$(RELEASE)/src/acoustics \ - -I. - -CFLAGS_ALPHA= -call_shared -fast -w0 -std1 -CFLAGS_HPUX10P8= +z -O +w1 -Aa -D_HPUX_SOURCE -CFLAGS_HPUX11= +z -O +w1 -Aa -D_HPUX_SOURCE -CFLAGS_HPUX11_64= +z -O +w1 -Aa -D_HPUX_SOURCE +DD64 +DA2.0W -CFLAGS_HPUX11_ia64= -O +DD64 +DSblended -Ae -CFLAGS_HIUX= -CFLAGS_IRIX65= -KPIC -xansi -fullwarn -O -n32 -mips3 -CFLAGS_IRIX65_MIPS4= -KPIC -xansi -fullwarn -O -n32 -mips4 -CFLAGS_IRIX65_MIPS4_64= -KPIC -xansi -fullwarn -O3 -64 -mips4 -OPT:IEEE_arithmetic=3:roundoff=3:Olimit=8000 -LNO:fusion=2:fission=0:prefetch=2 -signed -CFLAGS_AIX43= -O -qalign=natural -CFLAGS_POWER3= -O3 -qlanglvl=ansi -qarch=pwr3 -qfloat=hssngl -qansialias -qnolm -qalign=natural -CFLAGS_POWER3_64= -O -q64 -qnolm -qalign=natural -CFLAGS_ULTRA= -KPIC -fast -v -CFLAGS_ULTRA_64= -KPIC -fast -v -xarch=v9 -CFLAGS_FUJITSU_PP= -Kfast_GP=2,prefetch,V9 -CFLAGS_LNX86= -fpic -shared -ansi -Wall -m32 -O # options for CC= gcc -CFLAGS_LNAMD64= -D_lnamd64 -D_GNU_SOURCE -fpic -shared -Wall -O -DPTR_RESTRICT= # options for CC= gcc -CFLAGS_LOP64= -D_lop64 -D_GNU_SOURCE -fpic -shared -Wall -O -DPTR_RESTRICT= # options for CC= gcc -CFLAGS_LNIA64= -fpic -shared -Wall -O -DPTR_RESTRICT= # gcc options -CFLAGS_GCC= -fpic -shared -Wall -O -DPTR_RESTRICT= -CFLAGS_GCC64= -fpic -shared -Wall -O -m64 -DPTR_RESTRICT= - -LDFLAGS_ALPHA= -shared -lm -LDFLAGS_HPUX10P8= -b -lm -LDFLAGS_HPUX11= -b -lm -LDFLAGS_HPUX11_64= -b -lm -LDFLAGS_HPUX11_ia64= -b -lm -LDFLAGS_HIUX= -b -lm -LDFLAGS_IRIX65= -shared -n32 -mips3 -lm -LDFLAGS_IRIX65_MIPS4= -shared -n32 -mips4 -lm -LDFLAGS_IRIX65_MIPS4_64= -shared -64 -mips4 -lm -LDFLAGS_AIX43= -LDFLAGS_POWER3= -LDFLAGS_POWER3_64= -b64 -lmass -lm -LDFLAGS_ULTRA= -G -lm -LDFLAGS_ULTRA_64= -G -lm -LDFLAGS_FUJITSU_PP= -G -lm -LDFLAGS_LNX86= -shared -lm -m elf_i386 -LDFLAGS_LNAMD64= -shared -lm -LDFLAGS_LOP64= -shared -lm -LDFLAGS_LNIA64= -shared -lm -LDFLAGS_GCC= -shared -lm -LDFLAGS_GCC64= -shared -lm - -ifeq "$(GPU_SUPPORT)" "on" -INCLUDES+= -I$(FLUENT_INC)/fluent$(RELEASE)/multiport/gpu_wrapper/include -LDFLAGS_LNAMD64+= -L$(FLUENT_INC)/fluent$(RELEASE)/multiport/gpu_wrapper/$(ARCH)/stub -lOpenCL -endif - -.c.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(HOST_FLAGS) $(INCLUDES) -c $*.c - -.cpp.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(HOST_FLAGS) $(INCLUDES) -c $*.cpp - -default: $(UDFDATA) - @$(MAKE) $(ARCHC) - -$(TARGET): makefile user.udf $(UDFDATA) $(OBJECTS) - @echo "# Linking $@ because of $?" - $(CC) $(LDFLAGS) $(OBJECTS) $(USER_OBJECTS) -o $@ - -$(UDFDATA): makefile $(CSOURCES) - @echo '# Generating $@ because of $?' - @echo '/* This file generated automatically. */' > $@ - @echo '/* Do not modify. */' >> $@ - @echo '#include "udf.h"' >> $@ - @echo '#include "prop.h"' >> $@ - @echo '#include "dpm.h"' >> $@ - @sed -n 's/^ *\(DEFINE_[_A-Z]* *([^{]*)\)[{ ]*/extern \1;/p' $(CSOURCES) >> $@ - @echo 'UDF_Data udf_data[] = {' >> $@ - @sed -n 's/^ *DEFINE_\([_A-Z]*\) *( *\([_a-zA-Z0-9]*\)[^{]*)[{ ]*/\{"\2", (void (*)(void))\2, UDF_TYPE_\1\},/p' $(CSOURCES) >> $@ - @echo '};' >> $@ - @echo 'int n_udf_data = sizeof(udf_data)/sizeof(UDF_Data);' >> $@ - @echo '#include "version.h"' >> $@ - @echo 'void UDF_Inquire_Release(int *major, int *minor, int *revision)' >> $@ - @echo '{' >> $@ - @echo ' *major = RampantReleaseMajor;' >> $@ - @echo ' *minor = RampantReleaseMinor;' >> $@ - @echo ' *revision = RampantReleaseRevision;' >> $@ - @echo '}' >> $@ - -udf_names.o: - @echo "# Compiling $@ because of $?" - @rm -f $*.o - $(CC) $(CFLAGS) $(INCLUDES) -c $*.c - -alpha: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ALPHA)" "LD=cc" "LDFLAGS=$(LDFLAGS_ALPHA)" - -hpux10p8: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX10P8)" "LDFLAGS=$(LDFLAGS_HPUX10P8)" - -hpux11: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11)" "LDFLAGS=$(LDFLAGS_HPUX11)" - -hpux11_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11_64)" "LDFLAGS=$(LDFLAGS_HPUX11_64)" - -hpux11_ia64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HPUX11_ia64)" "LDFLAGS=$(LDFLAGS_HPUX11_ia64)" - -hiux:: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_HIUX)" "LDFLAGS=$(LDFLAGS_HIUX)" - -irix65: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65)" "LDFLAGS=$(LDFLAGS_IRIX65)" - -irix65_mips4: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65_MIPS4)" "LDFLAGS=$(LDFLAGS_IRIX65_MIPS4)" - -irix65_mips4_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_IRIX65_MIPS4_64)" "LDFLAGS=$(LDFLAGS_IRIX65_MIPS4_64)" - -aix43: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_AIX43)" "LDFLAGS=$(LDFLAGS_AIX43)" "LD=makeshared" - -aix51 power3: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_POWER3)" "LDFLAGS=$(LDFLAGS_POWER3)" "LD=makeshared" - -aix51_64 power3_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_POWER3_64)" "LDFLAGS=$(LDFLAGS_POWER3_64)" "LD=makeshared" - -ultra: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ULTRA)" "LDFLAGS=$(LDFLAGS_ULTRA)" - -ultra_64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_ULTRA_64)" "LDFLAGS=$(LDFLAGS_ULTRA_64)" - -fujitsu_pp: - $(MAKE) $(TARGET) "CC=/opt/FSUNf90/bin/fcc" "CFLAGS=$(CFLAGS_FUJITSU_PP)" "LDFLAGS=$(LDFLAGS_FUJITSU_PP)" - -lnx86 lnx86_rh8: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNX86)" "LDFLAGS=$(LDFLAGS_LNX86)" - -lnamd64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNAMD64)" "LDFLAGS=$(LDFLAGS_LNAMD64)" - -lop64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LOP64)" "LDFLAGS=$(LDFLAGS_LOP64)" - -lnia64: - $(MAKE) $(TARGET) "CFLAGS=$(CFLAGS_LNIA64)" "LDFLAGS=$(LDFLAGS_LNIA64)" "LD=$(CC)" - -gcc: - if [ ! -f sunmath.h ]; then \ - ln -s /usr/include/math.h sunmath.h ; \ - fi; \ - $(MAKE) $(TARGET) CC=gcc LD=gcc "CFLAGS=$(CFLAGS_GCC)" "LDFLAGS=$(LDFLAGS_GCC)" - rm sunmath.h - -gcc64: - if [ ! -f sunmath.h ]; then \ - ln -s /usr/include/math.h sunmath.h ; \ - fi; \ - $(MAKE) $(TARGET) CC=gcc LD=gcc "CFLAGS=$(CFLAGS_GCC64)" "LDFLAGS=$(LDFLAGS_GCC64)" - rm sunmath.h - -clean: - @rm -f $(TARGET) $(UDFDATA) $(OBJECTS) - -$(OBJECTS): $(HSOURCES) diff --git a/examples/Cavity2D/libudf/src/train_udf.c b/examples/Cavity2D/libudf/src/train_udf.c deleted file mode 100644 index 0959e91..0000000 --- a/examples/Cavity2D/libudf/src/train_udf.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "udf.h" -#include "dynamesh_tools.h" -#include -#include -#include -#include - -#ifdef BOOL_TRUE -#error BOOL_TRUE already defined! -#endif - -#ifdef BOOL_FALSE -#error BOOL_TRUE already defined! -#endif - -#define BOOL_TRUE 1 -#define BOOL_FALSE 0 - -DEFINE_GRID_MOTION(gridmotions,domain,dt,time,dtime) -{ - Message("Setting displacements...\n"); - Thread* face_thread = DT_THREAD(dt); - face_t face; - int n; - Node* node; - - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_POS_UPDATED(node); - NODE_COORD(node)[0] += 0.1; - } - } - } - } end_f_loop (face, face_thread); - Message("Leaving GRID_MOTION\n"); -} diff --git a/examples/Cavity2D/libudf/src/wave_maker_udf.c b/examples/Cavity2D/libudf/src/wave_maker_udf.c deleted file mode 100644 index baff4a6..0000000 --- a/examples/Cavity2D/libudf/src/wave_maker_udf.c +++ /dev/null @@ -1,97 +0,0 @@ -#include "udf.h" - -DEFINE_INIT(init,domain) -{ - Message ( "\nEntering INIT\n" ); - Domain* subdomain; - Thread* cell_thread; /* linked list of cells */ - cell_t cell; /* one cell */ - int phase_domain_index; - real cell_centroid[ND_ND]; /* n dimensional cell center coordinates */ - real surface_level = RP_Get_Float("udf/surfacelevel"); - int flipzones = RP_Get_Integer("udf/flipzones"); - real upper_phase = 0.0; - real lower_phase = 0.0; - - sub_domain_loop (subdomain, domain, phase_domain_index){ - if (phase_domain_index == 0){ /* primary phase */ - if (! flipzones){ - upper_phase = 1.0; - lower_phase = 0.0; - } - else { - upper_phase = 0.0; - lower_phase = 1.0; - } - } - else if (phase_domain_index == 1){ - if (! flipzones){ - upper_phase = 0.0; - lower_phase = 1.0; - } - else { - upper_phase = 1.0; - lower_phase = 0.0; - } - } - Message("Setting phasfor upper=%f, lower=%f\n", upper_phase, lower_phase); - thread_loop_c (cell_thread, subdomain){ - /*Message ( "-- 2\n" );*/ - begin_c_loop_all (cell, cell_thread){ - /*Message ( "-- 3\n" );*/ - C_CENTROID(cell_centroid, cell, cell_thread); - /*Message ( "-- 4\n" );*/ - if (cell_centroid[1] < surface_level){ - C_VOF(cell, cell_thread) = lower_phase; /* returns volume fraction for c cell and t phase thread */ - /*Message("Setting water\n");*/ - } - else { - C_VOF(cell, cell_thread) = upper_phase; - /*Message("Setting air\n");*/ - } - /*Message ( "-- 5\n" ); */ - } end_c_loop_all(cell_type, cell_thread) - } - } - Message ( "Leaving INIT\n" ); -} - -DEFINE_GRID_MOTION(gridrotation,domain,dt,time,dtime) -{ - Thread *tf = DT_THREAD(dt); - face_t f; - Node *v; - int n; - real amplitude = 0.0; - real period = 0.0; - real x, dx; - real pi = 3.14; - real oldtime = time - dtime; - -# if !RP_NODE /* Serial or Host */ - amplitude = RP_Get_Float("udf/amplitude"); - period = RP_Get_Float("udf/period"); -# endif - host_to_node_real_2(amplitude, period); - - /* set deforming flag on adjacent cell zone */ - SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf)); - - x = amplitude * (1.0 - exp((-5.0*oldtime)/(2.0*period))) * sin(2.0 * pi * oldtime / period); - dx = (amplitude * (1.0 - exp((-5.0*time)/(2.0*period))) * sin(2.0 * pi * time / period)) - x; - /*NV_S(vecdx, =, dx);*/ - - Message ("time = %f, dtime = %f, x = %f, dx = %f\n", time, dtime, x, dx); - - begin_f_loop(f,tf){ - if (PRINCIPAL_FACE_P(f,tf)){ - f_node_loop(f,tf,n) { - v = F_NODE(f,tf,n); - if (NODE_POS_NEED_UPDATE (v)){ - NODE_POS_UPDATED(v); - NODE_COORD(v)[0] += dx; - } - } - } - } end_f_loop(f,tf); -} diff --git a/examples/Cavity2D/libudf/src/wave_profile.c b/examples/Cavity2D/libudf/src/wave_profile.c deleted file mode 100644 index edacd97..0000000 --- a/examples/Cavity2D/libudf/src/wave_profile.c +++ /dev/null @@ -1,373 +0,0 @@ -#ifdef TEST -#define real double -#include "wave_profile_udf.h" -#include "stdio.h" -#else -#include "udf.h" - -real get_ratio_triangle_is_covered ( - real coords[6], - real wave_height ); - -real compute_triangle_area_2d( - real coords[6]); - -const real PI = 3.1415926535897932; -const real GRAVITY = 9.80665; -const real SHIFT = 3.1415926535897932*0.5; -int counter = 0; -real wave_amplitude = 0.0; -real omega = 0.0; -real k = 0.0; -real surface_level = 0.0; - -/** - * Returns the phase ratio (by water) of a boundary cell. - */ -real get_ratio_edge_is_covered ( - face_t face, - Thread* face_thread, - real wave_height ); - -void wave_profile_init(Domain* domain) -{ - Message ( "\nEntering INIT\n" ); - Domain* subdomain; - Thread* cell_thread; /* linked list of cells */ - cell_t cell; /* one cell */ - int phase_domain_index; - real cell_centroid[ND_ND]; /* n dimensional cell center coordinates */ - int flipzones = 0; - int phase_sign = 0; - real upper_phase = 0.0; - real lower_phase = 0.0; - - int i; - real coords[6]; - int node_index; - Node* node; - real phase; - -# if !RP_NODE /* Serial or Host */ - surface_level = RP_Get_Float("udf/surfacelevel"); - flipzones = RP_Get_Integer("udf/flipzones"); - wave_amplitude = 0.5 * RP_Get_Float("udf/waveheight"); - omega = (2.0 * PI) / RP_Get_Float("udf/period"); - k = (2.0 * PI) / RP_Get_Float("udf/wavelength"); -# endif - host_to_node_real_4(surface_level, wave_amplitude, omega, k); - host_to_node_int_1(flipzones); - - Message("surface level = %f\n", surface_level); - Message("flipzones = %d\n", flipzones); - Message("wave_amplitude = %f\n", wave_amplitude); - Message("omega = %f\n", omega); - Message("k = %f\n", k); - -# if !RP_HOST /* serial or node */ - sub_domain_loop (subdomain, domain, phase_domain_index){ - if (phase_domain_index == 0){ /* primary phase */ - if (! flipzones){ - phase_sign = 1; - upper_phase = 1.0; - lower_phase = 0.0; - } - else { - phase_sign = -1; - upper_phase = 0.0; - lower_phase = 1.0; - } - } - else if (phase_domain_index == 1){ - if (! flipzones){ - phase_sign = -1; - upper_phase = 0.0; - lower_phase = 1.0; - } - else { - phase_sign = 1; - upper_phase = 1.0; - lower_phase = 0.0; - } - } - Message("Setting phase for upper=%f, lower=%f\n", upper_phase, lower_phase); - thread_loop_c (cell_thread, subdomain){ - begin_c_loop_all (cell, cell_thread){ -# if ND_ND == 3 - C_CENTROID(cell_centroid, cell, cell_thread); - if (cell_centroid[1] < surface_level){ - C_VOF(cell, cell_thread) = lower_phase; - } - else { - C_VOF(cell, cell_thread) = upper_phase; - } -# endif /* ND_ND == 3 */ -# if ND_ND == 2 - i = 0; - c_node_loop(cell, cell_thread, node_index){ - node = C_NODE(cell, cell_thread, node_index); - coords[i++] = NODE_X(node); - coords[i++] = NODE_Y(node); - } - /*if (i != 6){ - Message("Error: found cell with size nodes != 3\n"); - exit(1); - }*/ - phase = phase_sign == 1 - ? 1.0 - get_ratio_triangle_is_covered(coords, surface_level) - : get_ratio_triangle_is_covered(coords, surface_level); - /*if (phase < 0.0 || phase > 1.0){ - Message("Error: phase = %f\n", phase); - }*/ - - C_CENTROID(cell_centroid, cell, cell_thread); - /*if (cell_centroid[1] > 0.5 && cell_centroid[1] < 0.55){ - Message("At %f,%f: %f (coords = %f, %f, %f, %f, %f, %f)\n", cell_centroid[0], cell_centroid[1], phase, - coords[0], coords[1], coords[2], coords[3], coords[4], coords[5]); - }*/ - C_VOF(cell, cell_thread) = phase; -# endif /* ND_ND == 2 */ - } end_c_loop_all(cell_type, cell_thread) - } - } -# endif /* serial or node */ - Message ( "Leaving INIT\n" ); -} - -void wave_profile_x_velocity(Thread* face_thread, int var_index) -{ - /*Message ( "\nEntering DEFINE_PROFILE(wave_x_velocity)\n");*/ - real time = CURRENT_TIME; - real centroid_coords[ND_ND]; - face_t face; - real height = 0.0; - real vel = 0.0; - real wave_height = wave_amplitude * cos(-1.0 * omega * time - SHIFT); - real vel_amplitude = (wave_amplitude * GRAVITY * k * cos(-1.0 * omega * time - SHIFT)) / (cosh(k * surface_level) * omega); - -# if !RP_HOST /* Serial or node */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face, face_thread)){ - F_CENTROID(centroid_coords, face, face_thread); - height = centroid_coords[1] - surface_level; - if (height <= wave_height){ - vel = vel_amplitude * cosh(k * (height + surface_level)); - } - else { - vel = vel_amplitude * cosh(k * (wave_height + surface_level)); - } - /*Message("Setting x vel = %f at face centroid_y = %f\n", vel, height);*/ - F_PROFILE(face, face_thread, var_index) = vel; - } - } end_f_loop(face, face_thread) -# endif - /*Message ( "Leaving DEFINE_PROFILE(wave_x_velocity)\n" );*/ -} - -void wave_profile_y_velocity(Thread* face_thread, int var_index) -{ - /*Message ( "\nEntering DEFINE_PROFILE(wave_y_velocity)\n" );*/ - real time = CURRENT_TIME; - real centroid_coords[ND_ND]; - face_t face; - real height = 0.0; - real vel = 0.0; - real wave_height = wave_amplitude * cos(-1.0 * omega * time - SHIFT); - real vel_amplitude = (wave_amplitude * GRAVITY * k * sin(-1.0 * omega * time - SHIFT)) / (cosh(k * surface_level) * omega); - -# if !RP_HOST /* Serial or node */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face, face_thread)){ - F_CENTROID(centroid_coords, face, face_thread); - height = centroid_coords[1] - surface_level; - if (height <= wave_height){ - vel = vel_amplitude * sinh(k * (height + surface_level)); - /*vel = 0.2 * sin(-1.0 * omega * time - SHIFT);*/ - } - else { - vel = vel_amplitude * sinh(k * (wave_height + surface_level)); - } - /*Message("Setting y vel = %f at face centroid_y = %f\n", vel, height);*/ - F_PROFILE(face, face_thread, var_index) = vel; - } - } end_f_loop(face, face_thread) -# endif - /*Message ( "Leaving DEFINE_PROFILE(wave_y_velocity)\n" );*/ -} - -void wave_profile_volume_fraction(Thread* face_thread, int var_index) -{ - /*Message ( "\nEntering DEFINE_PROFILE(wave_volume_fraction)\n" );*/ - real time = CURRENT_TIME; - face_t face; - real water_fraction = 0.0; - real wave_height = 0.0; - - real coords[6]; - int i; - int node_index; - Node *node; - - wave_height = wave_amplitude * cos(-1.0 * omega * time - SHIFT); - -# if !RP_HOST /* Serial or node */ - if (ND_ND == 2){ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face, face_thread)){ - water_fraction = get_ratio_edge_is_covered(face, face_thread, wave_height); - /*Message("Setting water fraction = %f at face centroid_y = %f\n", water_fraction, centroid_y);*/ - F_PROFILE(face, face_thread, var_index) = water_fraction; - } - } end_f_loop(face, face_thread) - } - else { /* ND_ND == 3 */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face, face_thread)){ - i = 0; - f_node_loop(face, face_thread, node_index){ - node = F_NODE(face, face_thread, node_index); - coords[i++] = NODE_Z(node); - coords[i++] = NODE_Y(node); - } - water_fraction = get_ratio_triangle_is_covered(coords, wave_height); - /*Message("Setting water fraction = %f at face centroid_y = %f\n", water_fraction, centroid_y);*/ - F_PROFILE(face, face_thread, var_index) = water_fraction; - } - } end_f_loop(face, face_thread) - } -# endif - /*Message ( "Leaving DEFINE_PROFILE(wave_volume_fraction)\n" );*/ -} - -real get_ratio_edge_is_covered ( - face_t face, - Thread* face_thread, - real wave_height ) -{ - real centroid_coords[ND_ND]; - real area_vector[ND_ND]; - real area = 0.0; - real centroid_y = 0.0; - real upper_y = 0.0; - real lower_y = 0.0; - - F_CENTROID(centroid_coords, face, face_thread); - F_AREA(area_vector, face, face_thread); - area = NV_MAG(area_vector); - centroid_y = centroid_coords[1]; - upper_y = centroid_y + area/2.0; - lower_y = centroid_y - area/2.0; - if (lower_y > surface_level + wave_height){ - return 0.0; - } - else if (upper_y < surface_level + wave_height){ - return 1.0; - } - return (surface_level + wave_height - lower_y) / area; -} - -#endif /* not TEST */ - -real get_ratio_triangle_is_covered ( - real coords[6], - real wave_height ) -{ - real ratio = 0.0; - real min = coords[1]; - real max = coords[1]; - int above = 0; - int below = 0; - int above_count = 0; - int i, j; - real coords_leg_vertices[4]; - real lambda; - real coords_small[6]; - real area, area_small; - - for (i=3; i < 6; i+=2){ - if (min > coords[i]) min = coords[i]; - if (max < coords[i]) max = coords[i]; - } - - if (min >= wave_height) return 0.0; - if (max <= wave_height) return 1.0; - - /* Determine, whether one or two vertices are above interface */ - for (i=0; i < 3; i++){ - if (coords[i*2 +1] > wave_height){ - above_count++; - above = i; - } - else { - below = i; - } - } - /*printf("above_count = %d, above = %d, below = %d\n", above_count, above, below);*/ - - j=0; - if (above_count == 1){ /* Select leg vertices below interface */ - coords_small[0] = coords[above*2]; - coords_small[1] = coords[above*2+1]; - for (i=0; i < 3; i++){ - if (i != above){ - coords_leg_vertices[j++] = coords[i*2]; - coords_leg_vertices[j++] = coords[i*2+1]; - } - } - } - else { /* Select leg vertices above interface */ - coords_small[0] = coords[below*2]; - coords_small[1] = coords[below*2+1]; - for (i=0, j=0; i < 3; i++){ - if (i != below){ - coords_leg_vertices[j++] = coords[i*2]; - coords_leg_vertices[j++] = coords[i*2+1]; - } - } - } - - /*printf("coords head: %f, %f\n", coords_small[0], coords_small[1]); - printf("leg vertex 1: %f, %f\n", coords_leg_vertices[0], coords_leg_vertices[1]); - printf("leg vertex 2: %f, %f\n", coords_leg_vertices[2], coords_leg_vertices[3]);*/ - - /* compute intersection points of interface with legs */ - lambda = (wave_height - coords_small[1]) / (coords_leg_vertices[1] - coords_small[1]); - coords_small[2] = coords_small[0] + lambda*(coords_leg_vertices[0] - coords_small[0]); - /*printf("lambda leg 1: %f, x leg 1: %f\n", lambda, coords_small[2]);*/ - lambda = (wave_height - coords_small[1]) / (coords_leg_vertices[3] - coords_small[1]); - coords_small[4] = coords_small[0] + lambda*(coords_leg_vertices[2] - coords_small[0]); - /*printf("lambda leg 2: %f, x leg 2: %f\n", lambda, coords_small[4]);*/ - coords_small[3] = wave_height; - coords_small[5] = wave_height; - - area = compute_triangle_area_2d(coords); - area_small = compute_triangle_area_2d(coords_small); - /*printf("area = %f, area_small = %f\n", area, area_small);*/ - if (above_count == 1){ - ratio = (area - area_small) / area; - } - else { - ratio = area_small / area; - } - if (ratio > 1.0 || ratio < 0.0){ - printf("Wrong triangle covered ratio of %f!\n", ratio); - printf("area = %f, area_small = %f, above_count = %d, above = %d\n", area, area_small, above_count, above); - printf("coords = (%f, %f) (%f, %f) (%f, %f); coords small = (%f, %f) (%f, %f) (%f, %f)\n", - coords[0], coords[1], coords[2], coords[3], coords[4], coords[5], - coords_small[0], coords_small[1], coords_small[2], coords_small[3], coords_small[4], coords_small[5]); - exit(1); - } - return ratio; -} - -real compute_triangle_area_2d(real coords[6]) -{ - real ab[] = {coords[2] - coords[0], coords[3] - coords[1]}; - real ac[] = {coords[4] - coords[0], coords[5] - coords[1]}; - return fabs(0.5 * (ab[0]*ac[1] - ab[1]*ac[0])); -} - - - - - diff --git a/examples/Cavity2D/libudf/src/wave_profile.h b/examples/Cavity2D/libudf/src/wave_profile.h deleted file mode 100644 index 0ae2a88..0000000 --- a/examples/Cavity2D/libudf/src/wave_profile.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef WAVE_PROFILE_H_ -#define WAVE_PROFILE_H_ - -#include "udf.h" - -void wave_profile_init(Domain* domain); - -void wave_profile_x_velocity(Thread* face_thread, int var_index); -void wave_profile_y_velocity(Thread* face_thread, int var_index); -void wave_profile_volume_fraction(Thread* face_thread, int var_index); - - -#endif /* WAVE_PROFILE_H_ */ diff --git a/examples/Cavity2D/libudf/src/wave_profile_udf.c b/examples/Cavity2D/libudf/src/wave_profile_udf.c deleted file mode 100644 index 4ebe334..0000000 --- a/examples/Cavity2D/libudf/src/wave_profile_udf.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "wave_profile.h" -#include "udf.h" - -DEFINE_INIT(init,domain) -{ - Message ( "\nEntering INIT\n" ); - wave_profile_init(domain); - Message ( "Leaving INIT\n" ); -} - -DEFINE_PROFILE(MP_wave_x_velocity,face_thread,var_index) -{ - wave_profile_x_velocity(face_thread, var_index); -} - -DEFINE_PROFILE(MP_wave_y_velocity, face_thread, var_index) -{ wave_profile_y_velocity(face_thread, var_index); -} - -DEFINE_PROFILE(MP_wave_volume_fraction, face_thread, var_index) -{ - wave_profile_volume_fraction(face_thread, var_index); -} diff --git a/examples/Cavity2D/libudf/src/wave_profile_udf.h b/examples/Cavity2D/libudf/src/wave_profile_udf.h deleted file mode 100644 index 0d8ae67..0000000 --- a/examples/Cavity2D/libudf/src/wave_profile_udf.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifdef TEST -#define real double -#endif - -real get_ratio_triangle_is_covered ( - real coords[6], - real wave_height ); - -real compute_triangle_area_2d( - real coords[6]); diff --git a/examples/Cavity2D/precice-config.xml b/examples/Cavity2D/precice-config.xml index cb879b0..1560567 100644 --- a/examples/Cavity2D/precice-config.xml +++ b/examples/Cavity2D/precice-config.xml @@ -12,27 +12,40 @@ - - + + + + + - + + - - - - + + + + + @@ -41,7 +54,8 @@ - + + diff --git a/examples/Cavity2D/solve-fsi.scm b/examples/Cavity2D/solve-fsi.scm index 06a0660..52b2d5e 100644 --- a/examples/Cavity2D/solve-fsi.scm +++ b/examples/Cavity2D/solve-fsi.scm @@ -1,24 +1,41 @@ -(rpsetvar 'dynamesh/update-in-timestep/update-interval 1000000000) -(ti-menu-load-string "solve/dual-time-iterate 1 0") +; tell Fluent to never really update the mesh, for now -- 1000000 is the max update interval allowed +(rpsetvar 'dynamesh/update-in-timestep/update-interval 1000000) (do () ((= (%rpgetvar 'udf/ongoing) 0)) - (if (= (%rpgetvar 'udf/iterate) 0) - ( begin - (ti-menu-load-string "solve/iterate 101") - ) - ( begin - (do () ((= (%rpgetvar 'udf/convergence) 1)) - (ti-menu-load-string "solve/iterate 32") - (ti-menu-load-string "define/user-defined/execute-on-demand \"write_and_advance::libudf\"") - (if (= (%rpgetvar 'udf/convergence) 0) - ( begin - (rpsetvar 'dynamesh/update-in-timestep/update-interval 1) - (ti-menu-load-string "solve/iterate 1") - (rpsetvar 'dynamesh/update-in-timestep/update-interval 1000000000) - )) - ) - )) + ; preCICE was initilized, which could have modified the time step, so we + ; reset the time step here + (ti-menu-load-string (string-append "solve/set/time-step " (number->string(%rpgetvar 'solve/dt)))) + (display "\n") + ; advance the solver to the next time step (ti-menu-load-string "solve/dual-time-iterate 1 0") + (if (= (%rpgetvar 'udf/iterate) 0) + ; if we're not solving a time step that ends in preCICE coupling + ; (sub-cycling), then just run the fluid solver a certain number of + ; iterations + ( begin + (ti-menu-load-string "solve/iterate 101") + ) + ; if we are coupling with preCICE, start a loop that checks for coupling + ; convergence + ( begin + (do () ((= (%rpgetvar 'udf/convergence) 1)) + ; run the fluid solver a certain number of iterations + (ti-menu-load-string "solve/iterate 32") + ; write forces to preCICE and advance + (ti-menu-load-string "define/user-defined/execute-on-demand \"write_and_advance::libudf\"") + ; if preCICE says we are not converged yet, update the fluid grid with + ; deformations from the solid solver + (if (= (%rpgetvar 'udf/convergence) 0) + ( begin + (rpsetvar 'dynamesh/update-in-timestep/update-interval 1) + (ti-menu-load-string "solve/iterate 1") + (rpsetvar 'dynamesh/update-in-timestep/update-interval 1000000) + ) + ) + ) + ) + ) + ; write a checkpoint, if needed (if (= (%rpgetvar 'udf/checkpoint) 1) ( begin (ti-menu-load-string "file/write-case-data fluent_checkpoint.cas yes") diff --git a/examples/Cavity2D/steer-fluent-exports.txt b/examples/Cavity2D/steer-fluent-exports.txt new file mode 100644 index 0000000..fbc9445 --- /dev/null +++ b/examples/Cavity2D/steer-fluent-exports.txt @@ -0,0 +1,10 @@ +; commands to send to Fluent to initialize and solve FSI analysis + +rc Cavity2D_exports.cas.h5 + +file/read-journal init-fsi.scm + +file/read-journal solve-fsi.scm + +exit +yes diff --git a/examples/Cavity2D/steer-fluent.txt b/examples/Cavity2D/steer-fluent.txt index eeab7c3..0e13757 100644 --- a/examples/Cavity2D/steer-fluent.txt +++ b/examples/Cavity2D/steer-fluent.txt @@ -1,5 +1,4 @@ -# Invoke serial fluent by: fluent 2ddp -g < steer-fluent.txt -# Invoke parallel fluent (4 procs) by: fluent 2ddp -t4 -mpi=openmpi < steer-fluent.txt +; commands to send to Fluent to initialize and solve FSI analysis rc Cavity2D.cas @@ -8,3 +7,4 @@ file/read-journal init-fsi.scm file/read-journal solve-fsi.scm exit +yes diff --git a/lnamd64/2ddp_host/fsi_corefunctions.c b/lnamd64/2ddp_host/fsi_corefunctions.c new file mode 120000 index 0000000..88de600 --- /dev/null +++ b/lnamd64/2ddp_host/fsi_corefunctions.c @@ -0,0 +1 @@ +../../src/fsi_corefunctions.c \ No newline at end of file diff --git a/lnamd64/2ddp_host/fsi_extrafunctions.c b/lnamd64/2ddp_host/fsi_extrafunctions.c deleted file mode 120000 index 88c85a8..0000000 --- a/lnamd64/2ddp_host/fsi_extrafunctions.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_extrafunctions.c \ No newline at end of file diff --git a/lnamd64/2ddp_host/udf_names.c b/lnamd64/2ddp_host/udf_names.c new file mode 120000 index 0000000..2cbf1d8 --- /dev/null +++ b/lnamd64/2ddp_host/udf_names.c @@ -0,0 +1 @@ +../../src/udf_names.c \ No newline at end of file diff --git a/lnamd64/2ddp_host/user.udf b/lnamd64/2ddp_host/user.udf deleted file mode 100644 index 4d30ed8..0000000 --- a/lnamd64/2ddp_host/user.udf +++ /dev/null @@ -1,5 +0,0 @@ -CSOURCES= fsi_udf.c fsi.c -HSOURCES= fsi.h -FLUENT_INC=/home/ishaan/ansys_inc/v195/fluent -HOST_FLAGS=-DUSE_UDF_HOST_DUMMY -GPU_SUPPORT=off diff --git a/lnamd64/2ddp_host/user.udf b/lnamd64/2ddp_host/user.udf new file mode 120000 index 0000000..3f86a6c --- /dev/null +++ b/lnamd64/2ddp_host/user.udf @@ -0,0 +1 @@ +../../src/user.udf \ No newline at end of file diff --git a/lnamd64/2ddp_node/fsi_corefunctions.c b/lnamd64/2ddp_node/fsi_corefunctions.c new file mode 120000 index 0000000..88de600 --- /dev/null +++ b/lnamd64/2ddp_node/fsi_corefunctions.c @@ -0,0 +1 @@ +../../src/fsi_corefunctions.c \ No newline at end of file diff --git a/lnamd64/2ddp_node/fsi_extrafunctions.c b/lnamd64/2ddp_node/fsi_extrafunctions.c deleted file mode 120000 index 88c85a8..0000000 --- a/lnamd64/2ddp_node/fsi_extrafunctions.c +++ /dev/null @@ -1 +0,0 @@ -../../src/fsi_extrafunctions.c \ No newline at end of file diff --git a/lnamd64/2ddp_node/udf_names.c b/lnamd64/2ddp_node/udf_names.c new file mode 120000 index 0000000..2cbf1d8 --- /dev/null +++ b/lnamd64/2ddp_node/udf_names.c @@ -0,0 +1 @@ +../../src/udf_names.c \ No newline at end of file diff --git a/lnamd64/2ddp_node/user.udf b/lnamd64/2ddp_node/user.udf deleted file mode 100644 index 4d30ed8..0000000 --- a/lnamd64/2ddp_node/user.udf +++ /dev/null @@ -1,5 +0,0 @@ -CSOURCES= fsi_udf.c fsi.c -HSOURCES= fsi.h -FLUENT_INC=/home/ishaan/ansys_inc/v195/fluent -HOST_FLAGS=-DUSE_UDF_HOST_DUMMY -GPU_SUPPORT=off diff --git a/lnamd64/2ddp_node/user.udf b/lnamd64/2ddp_node/user.udf new file mode 120000 index 0000000..3f86a6c --- /dev/null +++ b/lnamd64/2ddp_node/user.udf @@ -0,0 +1 @@ +../../src/user.udf \ No newline at end of file diff --git a/src/fsi.c b/src/fsi.c index 12375a2..10fe29f 100644 --- a/src/fsi.c +++ b/src/fsi.c @@ -16,33 +16,19 @@ #define BOOL_TRUE 1 #define BOOL_FALSE 0 -double timestep_limit = 0.0; -double* forces = NULL; -int* force_indices = NULL; -int skip_grid_motion = BOOL_TRUE; -int did_gather_write_positions = BOOL_FALSE; -int did_gather_read_positions = BOOL_FALSE; -int thread_index = 0; -int dynamic_thread_size = 0; -int wet_edges_size = 0; +/* GLOBAL VARIABLES */ int wet_nodes_size = 0; -int boundary_nodes_size = 0; -int deformable_nodes_size = 0; -int moved_nodes_counter = 0; -double* initial_coords = NULL; -double* boundary_coords = NULL; /* MESH MOVEMENT */ -double* displacements = NULL; +int wet_face_size = 0; int* displ_indices = NULL; +int* face_indices = NULL; +double* initial_coords = NULL; +double* face_coords = NULL; +int thread_index = 0; +int dynamic_thread_size = 0; int* dynamic_thread_node_size = NULL; -double* c_matrix = NULL; -double* x_coeff_vector = NULL; -double* y_coeff_vector = NULL; -double* b_vector = NULL; -int* pivots_vector = NULL; -int comm_size = -1; -int require_create_checkpoint = BOOL_FALSE; -int* precice_force_ids; /* Gathered in host node (or serial node) */ -int* precice_displ_ids; +int* dynamic_thread_face_size = NULL; +int skip_grid_motion = BOOL_TRUE; +/* END GLOBAL VARIABLES */ #if ND_ND == 2 #define norm(a, b) sqrt((a[0]-b[0])*(a[0]-b[0]) + (a[1]-b[1])*(a[1]-b[1])) @@ -51,11 +37,9 @@ int* precice_displ_ids; #endif /* Forward declarations of helper functions */ -void count_dynamic_threads(); +int count_dynamic_threads(); void write_forces(); void read_displacements(Dynamic_Thread* dt); -int check_write_positions(); -int check_read_positions(Dynamic_Thread* dt); void set_mesh_positions(Domain* domain); /* This function creates the solver interface named "Fluent" and initializes @@ -64,60 +48,92 @@ void set_mesh_positions(Domain* domain); * */ void fsi_init(Domain* domain) { - int precice_process_id = -1; /* Process ID given to preCICE */ - printf("\nEntering fsi_init\n"); - - /* Only Host Process (Rank 0) handles the coupling interface */ - #if !RP_HOST - - #if !PARALLEL - precice_process_id = 0; - comm_size = 1; - #else /* !PARALLEL*/ - #if RP_HOST - precice_process_id = 0; - #elif RP_NODE - precice_process_id = myid + 1; - #endif /* elif RP_NODE */ - comm_size = compute_node_count + 1; - #endif /* else !PARALLEL */ - - /* Parallel implementation above is bypassed for testing serial version */ - precice_process_id = 0; - comm_size = 1; - - Message(" (%d) Creating solver interface\n", myid); + double solve_dt = 0; + int udf_convergence = 1; + int udf_iterate = 0; + + /* Only Rank 0 Process handles the coupling interface */ + #if !RP_HOST + printf("\n(%d) Entering fsi_init\n", myid); + int solver_process_id = -1; + int solver_process_size = 0; + double timestep_limit = 0.0; + + #if !PARALLEL + solver_process_id = 0; + solver_process_size = 1; + #else /* !PARALLEL*/ + solver_process_id = myid; + solver_process_size = compute_node_count; + #endif /* else !PARALLEL */ + + printf(" (%d) Creating solver interface\n", myid); + /* temporarily hard coding Solver name */ + if (RP_Variable_Exists_P("udf/config-location")){ + const char *config_loc = RP_Get_String("udf/config-location"); + precicec_createSolverInterface("Fluent", config_loc, solver_process_id, + solver_process_size); + } + else { + Error("Error reading 'udf/config-location' Scheme variable"); + } + printf(" (%d) Solver interface created\n", myid); - /* temporarily hard coding Solver name and preCICE Config File name */ - precicec_createSolverInterface("Fluent", "precice-config.xml", - precice_process_id, comm_size); + /* Count the number of dynamic threads */ + dynamic_thread_size = count_dynamic_threads(); - // count_dynamic_threads(); + /* initialize array of nodes on each dynamic thread with 0s */ + dynamic_thread_node_size = (int*) malloc(dynamic_thread_size * sizeof(int)); + dynamic_thread_face_size = (int*) malloc(dynamic_thread_size * sizeof(int)); + for (int i=0; i < dynamic_thread_size; i++){ + dynamic_thread_node_size[i] = 0; + dynamic_thread_face_size[i] = 0; + } + + /* Set coupling mesh positions (faces and nodes)*/ + set_mesh_positions(domain); + + printf(" (%d) Initializing coupled simulation\n", myid); + timestep_limit = precicec_initialize(); + /* Set the solver time step to be the minimum of the precice time step an the + * current time step */ + solve_dt = fmin(timestep_limit, CURRENT_TIMESTEP); + printf(" (%d) Initialization done\n", myid); + #endif /* !RP_HOST */ + + /* Communicate values from node(s) to host */ + node_to_host_double_1(solve_dt); + #if !RP_NODE + if (RP_Variable_Exists_P("solve/dt")){ + RP_Set_Real("solve/dt", solve_dt); + } + else { + Error("Error reading 'solve/dt' Scheme variable"); + } + #endif /* !RP_NODE */ - /* Set coupling mesh */ - set_mesh_positions(domain); + #if !RP_HOST + if (precicec_isActionRequired(precicec_actionWriteIterationCheckpoint())){ + printf(" (%d) Implicit coupling\n", myid); + udf_convergence = 0; + udf_iterate = 1; + precicec_markActionFulfilled(precicec_actionWriteIterationCheckpoint()); + } + else { + printf(" (%d) Explicit coupling\n", myid); + } + printf(" (%d) Synchronizing Fluent processes\n", myid); + PRF_GSYNC(); - Message(" (%d) Initializing coupled simulation\n", myid); - timestep_limit = precicec_initialize(); - Message(" (%d) Initialization done\n", myid); + printf("(%d) Leaving INIT\n", myid); + #endif /* !RP_HOST */ + + node_to_host_int_2(udf_convergence, udf_iterate); - if (precicec_isActionRequired(precicec_actionWriteIterationCheckpoint())){ - Message(" (%d) Implicit coupling\n", myid); #if !RP_NODE - RP_Set_Integer("udf/convergence", BOOL_FALSE); - RP_Set_Integer("udf/iterate", BOOL_TRUE); - #endif /* ! RP_NODE */ - precicec_markActionFulfilled(precicec_actionWriteIterationCheckpoint()); - } - else { - Message(" (%d) Explicit coupling\n", myid); - } - - Message(" (%d) Synchronizing Fluent processes\n", myid); - PRF_GSYNC(); - - printf("(%d) Leaving INIT\n", myid); - #endif /* !RP_HOST */ + RP_Set_Integer("udf/convergence", udf_convergence); + RP_Set_Integer("udf/iterate", udf_iterate); + #endif /* !RP_NODE */ } /* Main function advances the interface time step and provides the mechanism @@ -126,53 +142,57 @@ void fsi_init(Domain* domain) * */ void fsi_write_and_advance() { - /* Only the host process (Rank 0) handles the writing of data and advancing coupling */ - #if !RP_HOST - - printf("(%d) Entering ON_DEMAND(write_and_advance)\n", myid); - int ongoing; - int subcycling = !precicec_isWriteDataRequired(CURRENT_TIMESTEP); - int current_size = -1; - - if (subcycling){ - Message(" (%d) In subcycle, skip writing\n", myid); - } - else { - if (wet_edges_size){ - write_forces(); + int ongoing = 1; + int udf_convergence = 0; + double solve_dt = 0; + + /* Only the host process (Rank 0) handles the writing of data and advancing coupling */ + #if !RP_HOST + printf("\n(%d) Entering ON_DEMAND(write_and_advance)\n", myid); + int subcycling = !precicec_isWriteDataRequired(CURRENT_TIMESTEP); + double timestep_limit = 0.0; + + if (subcycling){ + Message(" (%d) In subcycle, skip writing\n", myid); + } + else { + if (wet_face_size > 0){ + write_forces(); + } } - } - - timestep_limit = precicec_advance(CURRENT_TIMESTEP); - - /* Read coupling state */ - ongoing = precicec_isCouplingOngoing(); - #if !RP_NODE - RP_Set_Integer("udf/ongoing", ongoing); - #endif /* !RP_NODE */ - if (precicec_isActionRequired(precicec_actionWriteIterationCheckpoint())){ - #if !RP_NODE - RP_Set_Integer("udf/convergence", BOOL_TRUE); - #endif /* !RP_NODE */ - precicec_markActionFulfilled(precicec_actionWriteIterationCheckpoint()); - } + timestep_limit = precicec_advance(CURRENT_TIMESTEP); + /* Send min of timestep_limit and CURRENT_TIMESTEP to TUI */ + solve_dt = fmin(timestep_limit, CURRENT_TIMESTEP); + /* Read coupling state */ + ongoing = precicec_isCouplingOngoing(); + + if (precicec_isActionRequired(precicec_actionWriteIterationCheckpoint())){ + udf_convergence = 1; + precicec_markActionFulfilled(precicec_actionWriteIterationCheckpoint()); + } + if (precicec_isActionRequired(precicec_actionReadIterationCheckpoint())){ + udf_convergence = 0; + precicec_markActionFulfilled(precicec_actionReadIterationCheckpoint()); + } + if (! precicec_isCouplingOngoing()){ + udf_convergence = 1; + } + printf("(%d) Leaving ON_DEMAND(write_and_advance)\n", myid); + #endif /* !RP_HOST */ + + /* Pass data from compute nodes to host node */ + node_to_host_int_2(ongoing, udf_convergence); + node_to_host_double_1(solve_dt); - if (precicec_isActionRequired(precicec_actionReadIterationCheckpoint())){ #if !RP_NODE - RP_Set_Integer("udf/convergence", BOOL_FALSE); + RP_Set_Real("solve/dt", solve_dt); + RP_Set_Integer("udf/ongoing", ongoing); + RP_Set_Integer("udf/convergence", udf_convergence); + Message("(%d) Setting solve/dt: %.6e, udf/ongoing: %ld, udf/convergence: %ld\n", + myid, RP_Get_Real("solve/dt"), RP_Get_Integer("udf/ongoing"), + RP_Get_Integer("udf/convergence")); #endif /* !RP_NODE */ - precicec_markActionFulfilled(precicec_actionReadIterationCheckpoint()); - } - - #if !RP_NODE - if (! precicec_isCouplingOngoing()){ - RP_Set_Integer("udf/convergence", BOOL_TRUE); - } - #endif /* !RP_NODE */ - - printf("(%d) Leaving ON_DEMAND(write_and_advance)\n", myid); - #endif /* !RP_HOST */ } /* Function to be attached to the Dynamic Mesh in FLUENT in the form of a UDF. @@ -182,136 +202,221 @@ void fsi_write_and_advance() * */ void fsi_grid_motion(Domain* domain, Dynamic_Thread* dt, real time, real dtime) { - /* Only the host process (Rank 0) handles grid motion and displacement calculations */ - #if !RP_HOST - - printf("\n(%d) Entering GRID_MOTION\n", myid); - int current_thread_size = -1; - - if (thread_index == dynamic_thread_size){ - printf ("Reset thread index\n"); - thread_index = 0; - } - printf(" (%d) Thread index = %d\n", myid, thread_index); - Thread* face_thread = DT_THREAD(dt); - - if (strncmp("gridmotions", dt->profile_udf_name, 11) != 0){ - printf(" (%d) ERROR: called gridmotions for invalid dynamic thread: %s\n", - myid, dt->profile_udf_name); - exit(1); - } - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - exit(1); - } - - if (skip_grid_motion){ - if (thread_index >= dynamic_thread_size-1){ - skip_grid_motion = BOOL_FALSE; + int ongoing = 1; + + /* Only the host process (Rank 0) handles grid motion and displacement calculations */ + #if !RP_HOST + printf("\n(%d) Entering GRID_MOTION\n", myid); + /* Restart the thread index so we can provide motion for more than one + * boundary */ + if (thread_index == dynamic_thread_size){ + printf (" (%d) Reset thread index\n", myid); + thread_index = 0; } - thread_index++; - printf(" (%d) Skipping first round grid motion\n", myid); - return; - } - - SET_DEFORMING_THREAD_FLAG(THREAD_T0(face_thread)); - - read_displacements(dt); - thread_index++; - - #if !RP_NODE - - Message(" (%d) convergence=%d, iterate=%d, couplingOngoing=%d\n", - myid, RP_Get_Integer("udf/convergence"), RP_Get_Integer("udf/iterate"), - precicec_isCouplingOngoing()); - if (RP_Get_Integer("udf/convergence") && RP_Get_Integer("udf/iterate") && precicec_isCouplingOngoing()){ - RP_Set_Integer("udf/convergence", BOOL_FALSE); - } - - #endif /* !RP_NODE */ - - if (! precicec_isCouplingOngoing()){ - precicec_finalize(); - } - - printf("(%d) Leaving GRID_MOTION\n", myid); + printf(" (%d) Thread index = %d\n", myid, thread_index); + /* Create the Thread pointer */ + Thread* face_thread = DT_THREAD(dt); + + /* Ways we can error out */ + if (strncmp("gridmotions", dt->profile_udf_name, 11) != 0){ + printf(" (%d) ERROR: called gridmotions for invalid dynamic thread: %s\n", + myid, dt->profile_udf_name); + exit(1); + } + if (face_thread == NULL){ + printf(" (%d) ERROR: face_thread == NULL\n", myid); + exit(1); + } + /* If we skip the grid motion on the first round just return, but also + * increase the thread index and change skip_grid_motion to FALSE */ + if (skip_grid_motion){ + if (thread_index >= dynamic_thread_size-1){ + skip_grid_motion = BOOL_FALSE; + } + thread_index++; + printf(" (%d) Skipping first round grid motion\n", myid); + } + else { + /* Read in displacements and move grid */ + SET_DEFORMING_THREAD_FLAG(THREAD_T0(face_thread)); + read_displacements(dt); + thread_index++; + } + /* update the ongoing flag */ + ongoing = precicec_isCouplingOngoing(); + PRF_GSYNC(); + /* if precice is done, finalize */ + if (! precicec_isCouplingOngoing()){ + precicec_finalize(); + } + printf("(%d) Leaving GRID_MOTION\n", myid); + #endif /* !RP_HOST */ + + /* Send udf_convergence to RP_HOST so it can be changed in the TUI */ + node_to_host_int_1(ongoing); + + #if !RP_NODE + /* update the ongoing flag */ + RP_Set_Integer("udf/ongoing", ongoing); + /* print status of the relevant flags */ + Message("(%d) convergence=%ld, iterate=%ld, couplingOngoing=%ld\n", + myid, RP_Get_Integer("udf/convergence"), RP_Get_Integer("udf/iterate"), + RP_Get_Integer("udf/ongoing")); + /* if ongoing, iterate, and convergence flags are all on turn the convergence + * flag off */ + if (RP_Get_Integer("udf/convergence") && + RP_Get_Integer("udf/iterate") && + RP_Get_Integer("udf/ongoing")){ + RP_Set_Integer("udf/convergence", 0); + Message("(%d) Setting udf/convergence: %ld\n", + myid, RP_Get_Integer("udf/convergence")); + } + #endif +} - #endif /* !RP_HOST */ +int count_dynamic_threads() +{ + printf("(%d) Entering count_dynamic_threads()\n", myid); + Domain *domain = NULL; + Dynamic_Thread* dynamic_thread = NULL; + Thread* face_thread = NULL; + face_t face; + int node_index; + int dynamic_thread_size = 0; + Node* node = NULL; + + printf( " (%d) counting dynamic threads:\n", myid); + domain = Get_Domain(1); + if (domain == NULL){ + printf(" (%d) ERROR: domain == NULL\n", myid); + exit(1); + } + if (domain->dynamic_threads == NULL){ + printf(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); + exit (1); + } + dynamic_thread = domain->dynamic_threads; + while (dynamic_thread != NULL){ + if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ + face_thread = DT_THREAD(dynamic_thread); + begin_f_loop (face, face_thread){ /* Thread face loop */ + if (PRINCIPAL_FACE_P(face,face_thread)){ + f_node_loop (face, face_thread, node_index){ /* Face node loop */ + node = F_NODE(face, face_thread, node_index); + NODE_MARK(node) = 11111; + } + } + } end_f_loop(face, face_thread) + dynamic_thread_size++; + } + dynamic_thread = dynamic_thread->next; + } + + /* Reset node marks */ + dynamic_thread = domain->dynamic_threads; + while (dynamic_thread != NULL){ + if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ + face_thread = DT_THREAD(dynamic_thread); + begin_f_loop (face, face_thread){ /* Thread face loop */ + f_node_loop (face, face_thread, node_index){ /* Face node loop */ + node = F_NODE(face, face_thread, node_index); + NODE_MARK(node) = 0; + } + } end_f_loop(face, face_thread) + } + dynamic_thread = dynamic_thread->next; + } + printf(" (%d) ... %d\n", myid, dynamic_thread_size); + printf("(%d) Leaving count_dynamic_threads()\n", myid); + return dynamic_thread_size; } void set_mesh_positions(Domain* domain) { - /* Only the host process (Rank 0) handles grid motion and displacement calculations */ - #if !RP_HOST - - printf("(%d) Entering set_mesh_positions()\n", myid); - Thread* face_thread = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Node* node; - face_t face; - int n = 0, dim = 0, array_index = 0; - int meshID = precicec_getMeshID("moving_base"); - - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - fflush(stdout); - exit(1); - } - - /* Count number of interface vertices and dynamic_thread_node_size */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop(face, face_thread, n){ - node = F_NODE(face, face_thread, n); - printf("Count of wet_nodes_size = %d\n", wet_nodes_size); - wet_nodes_size++; - dynamic_thread_node_size[thread_index]++; - } + /* Only the host process (Rank 0) handles grid motion and displacement calculations */ + #if !RP_HOST + printf("(%d) Entering set_mesh_positions()\n", myid); + Thread* face_thread = NULL; + Dynamic_Thread* dynamic_thread = NULL; + Node* node; + face_t face; + double pos[ND_ND]; + int n = 0, dim = 0, array_index = 0, face_index = 0; + int nodeMeshID = precicec_getMeshID("moving_base_nodes"); + int faceMeshID = precicec_getMeshID("moving_base_faces"); + + if (domain->dynamic_threads == NULL){ + Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); + exit(1); } - } end_f_loop(face, face_thread); - - printf(" (%d) Setting %d initial positions ...\n", myid, wet_nodes_size); - - /* Providing mesh information to preCICE */ - initial_coords = (double*) malloc(wet_nodes_size * ND_ND * sizeof(double)); - displacements = (double*) malloc(wet_nodes_size * ND_ND * sizeof(double)); - displ_indices = (int*) malloc(wet_nodes_size * sizeof(int)); - array_index = wet_nodes_size - dynamic_thread_node_size[thread_index]; - - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop(face, face_thread, n){ - node = F_NODE(face, face_thread, n); - NODE_MARK(node) = 1; /*Set node to need update*/ - for (dim = 0; dim < ND_ND; dim++){ - initial_coords[array_index*ND_ND+dim] = NODE_COORD(node)[dim]; - } - array_index++; - } + dynamic_thread = domain->dynamic_threads; + + face_thread = DT_THREAD(dynamic_thread); + if (face_thread == NULL){ + printf(" (%d) ERROR: face_thread == NULL\n", myid); + fflush(stdout); + exit(1); } - } end_f_loop(face, face_thread); + /* Count the total number of unique nodes on the face_thread; nodes were + * marked in count_dynamic_threads() */ + begin_f_loop(face, face_thread){ + if (PRINCIPAL_FACE_P(face, face_thread)) { + wet_face_size++; + dynamic_thread_face_size[thread_index]++; + f_node_loop(face, face_thread, n){ + node = F_NODE(face, face_thread, n); + if (NODE_MARK(node) == 0) { + wet_nodes_size++; + dynamic_thread_node_size[thread_index]++; + NODE_MARK(node) = 1; + } + } + } + } end_f_loop(face, face_thread); - for (int i=0; i 0){ - Message(" (%d) Reading displacements...\n", myid); - offset = 0; - for (i = 0; i < thread_index; i++){ - offset += dynamic_thread_node_size[i]; - } - printf("data size for readBlockVectorData = %d\n",dynamic_thread_node_size[thread_index]); - precicec_readBlockVectorData(displID, dynamic_thread_node_size[thread_index], - displ_indices + offset, displacements + ND_ND * offset); - printf("After readBlockVectorData\n"); - - Message(" (%d) Setting displacements...\n", myid); - i = offset * ND_ND; - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_POS_UPDATED(node); - for (dim=0; dim < ND_ND; dim++){ - /* NODE_COORD(node)[dim] = initial_coords[i+dim] + displacements[i+dim]; */ - if (fabs(displacements[i+dim]) > fabs(max_displ_delta)){ - max_displ_delta = displacements[i + dim]; - } - } - i += ND_ND; + double* displacements = NULL; + int nodeMeshID = precicec_getMeshID("moving_base_nodes"); + int displID = precicec_getDataID("Displacements", nodeMeshID); + int offset = 0; + int i = 0, n = 0, dim = 0; + Thread* face_thread = DT_THREAD(dt); + Node* node; + face_t face; + real max_displ_delta = 0.0; + + displacements = (double*) malloc(wet_nodes_size * ND_ND * sizeof(double)); + + if (dynamic_thread_node_size[thread_index] > 0){ + printf(" (%d) Reading displacements...\n", myid); + for (i = 0; i < thread_index; i++){ + offset += dynamic_thread_node_size[i]; } - } - } - } end_f_loop (face, face_thread); + printf(" data size for readBlockVectorData = %d\n", dynamic_thread_node_size[thread_index]); + //precicec_readBlockVectorData(displID, dynamic_thread_node_size[thread_index], + // displ_indices + offset, displacements + ND_ND * offset); + precicec_readBlockVectorData(displID, dynamic_thread_node_size[thread_index], displ_indices, displacements); + + printf("After readBlockVectorData\n"); + Message(" (%d) Setting displacements...\n", myid); + i = offset * ND_ND; + begin_f_loop (face, face_thread){ + if (PRINCIPAL_FACE_P(face,face_thread)){ + f_node_loop (face, face_thread, n){ + node = F_NODE(face, face_thread, n); + if (NODE_POS_NEED_UPDATE(node)){ + for (dim=0; dim < ND_ND; dim++){ + NODE_COORD(node)[dim] = initial_coords[i+dim] + displacements[i+dim]; + if (fabs(displacements[i+dim]) > fabs(max_displ_delta)){ + max_displ_delta = displacements[i + dim]; + } + } + NODE_POS_UPDATED(node); + i += ND_ND; + } + } + } + } end_f_loop (face, face_thread); - Message(" (%d) ...done\n", myid); - } - Message(" (%d) Max displacement delta: %f\n", myid, max_displ_delta); + Message(" (%d) ...done\n", myid); + } + Message(" (%d) Max displacement delta: %f\n", myid, max_displ_delta); } /* This function writes the new forces on the structure calculated in FLUENT to the @@ -370,156 +478,86 @@ void read_displacements(Dynamic_Thread* dt) */ void write_forces() { - int meshID = precicec_getMeshID("moving_base"); - int forceID = precicec_getDataID("Forces", meshID); - int i=0, j=0; - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - int thread_counter = 0; - real area[ND_ND]; - real pressure_force[ND_ND]; - real viscous_force[ND_ND]; - double total_force[ND_ND]; - double max_force = 0.0; - - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - Message(" (%d) Gather forces...\n", myid); - i = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - Message(" (%d) Thread index %d\n", myid, thread_counter); - Thread* face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - Message(" (%d) ERROR: face_thread == NULL\n", myid); + double* forces = NULL; + int faceMeshID = precicec_getMeshID("moving_base_faces"); + int forceID = precicec_getDataID("Forces", faceMeshID); + int i=0, j=0; + Domain* domain = NULL; + Dynamic_Thread* dynamic_thread = NULL; + int thread_counter = 0; + int face_counter = 0; + double area[ND_ND]; + double pressure_force[ND_ND]; + double viscous_force[ND_ND]; + double total_force[ND_ND]; + double sum_total_force[ND_ND]; + double max_force = 0.0; + + forces = (double*) malloc(wet_face_size * ND_ND * sizeof(double)); + + domain = Get_Domain(1); + if (domain == NULL){ + printf(" (%d) ERROR: domain == NULL\n", myid); exit(1); - } - face_t face; - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - F_AREA(area, face, face_thread); - NV_VS(viscous_force, =, F_STORAGE_R_N3V(face,face_thread,SV_WALL_SHEAR),*,-1.0); - NV_VS(pressure_force, =, area, *, F_P(face,face_thread)); - NV_VV(total_force, =, viscous_force, +, pressure_force); - for (j=0; j < ND_ND; j++){ - forces[i + j] = total_force[j]; - if (fabs(total_force[j]) > fabs(max_force)){ - max_force = total_force[j]; - } - } - i += ND_ND; - } - } end_f_loop(face, face_thread); - thread_counter++; } - dynamic_thread = dynamic_thread->next; - } - Message(" (%d) ...done (with %d force values)\n", myid, i); - Message(" (%d) Writing forces...\n", myid); - precicec_writeBlockVectorData(forceID, wet_edges_size, force_indices, forces); - Message(" (%d) ...done\n", myid ); - Message(" (%d) Max force: %f\n", max_force); - if (thread_counter != dynamic_thread_size){ - Message ( " (%d) ERROR: Number of dynamic threads has changed to %d!\n", myid, thread_counter ); - exit(1); - } -} - -int check_write_positions() -{ - #if !RP_HOST - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - int thread_counter = 0; - face_t face; - int wet_edges_check_size = 0; - - Message(" (%d) Checking write positions...\n", myid); - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - /*Message("\n (%d) Thread index %d\n", myid, thread_counter);*/ - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - Message(" (%d) ERROR: Thread %d: face_thread == NULL\n", myid, thread_counter); + if (domain->dynamic_threads == NULL){ + printf(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - wet_edges_check_size++; - } - } end_f_loop(face, face_thread); - thread_counter++; } - dynamic_thread = dynamic_thread->next; - } - Message(" (%d) ...done (currently %d wet edges, old is %d)", myid, - wet_edges_check_size, wet_edges_size); - if (wet_edges_check_size != wet_edges_size) { - return wet_edges_check_size; - } - #endif /* ! RP_HOST */ - return -1; -} -int check_read_positions(Dynamic_Thread* dt) -{ - Message(" (%d) Checking read positions...\n", myid); - int i = 0, n = 0; - Thread* face_thread = DT_THREAD(dt); - Node* node; - face_t face; - - /* Count nodes */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_MARK(node) = 12345; - i++; - } - } + dynamic_thread = domain->dynamic_threads; + printf(" (%d) Gather forces...\n", myid); + while (dynamic_thread != NULL){ + if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ + printf(" (%d) Thread index %d\n", myid, thread_counter); + Thread* face_thread = DT_THREAD(dynamic_thread); + if (face_thread == NULL){ + Error(" (%d) face_thread == NULL\n", myid); + } + if (!BOUNDARY_FACE_THREAD_P(face_thread)){ + Error(" (%d) face_thread is not a boundary face\n", myid); + } + face_counter = 0; + sum_total_force[0] = 0; + sum_total_force[1] = 0; + face_t face; + begin_f_loop (face, face_thread){ + if (PRINCIPAL_FACE_P(face, face_thread)){ + F_AREA(area, face, face_thread); + NV_VS(viscous_force, =, F_STORAGE_R_N3V(face,face_thread,SV_WALL_SHEAR),*,-1.0); + /* F_P is NOT available in the density-based solver in Fluent; MUST + * use the pressure-based solver */ + NV_VS(pressure_force, =, area, *, F_P(face,face_thread)); + NV_VV(total_force, =, viscous_force, +, pressure_force); + for (j=0; j < ND_ND; j++){ + forces[i + j] = total_force[j]; + if (fabs(total_force[j]) > fabs(max_force)){ + max_force = total_force[j]; + } + } + i += ND_ND; + } + face_counter++; + sum_total_force[0] += total_force[0]; + sum_total_force[1] += total_force[1]; + } end_f_loop(face, face_thread); + printf(" (%d) thread: %d had %d faces\n", myid, thread_counter, face_counter); + printf(" (%d) thread: %d had sum_total_force: %f %f\n", + myid, thread_counter, sum_total_force[0], sum_total_force[1]); + thread_counter++; + } + else { + printf(" dynamic_thread->profile_udf_name is not 'gridmotions'"); + } + dynamic_thread = dynamic_thread->next; } - } end_f_loop(face, face_thread); - - /* Reset node marks */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_MARK(node) == 12345){ - NODE_MARK(node) = 1; /* Set node to need update*/ - } - } + printf(" (%d) ...done (with %d force values)\n", myid, i); + printf(" (%d) Writing forces...\n", myid); + precicec_writeBlockVectorData(forceID, wet_face_size, face_indices, forces); + printf(" (%d) ...done\n", myid ); + printf(" (%d) Max force: %f\n", myid, max_force); + if (thread_counter != dynamic_thread_size){ + printf ( " (%d) ERROR: Number of dynamic threads has changed to %d!\n", myid, thread_counter ); + exit(1); } - } end_f_loop(face, face_thread); - - if (i != dynamic_thread_node_size[thread_index]){ - Message(" (%d) Wet node count has changed for dynamic thread %d!\n", - myid, thread_index); - return i; - } - return -1; } diff --git a/src/fsi_corefunctions.c b/src/fsi_corefunctions.c index 5764b4c..d63be5d 100644 --- a/src/fsi_corefunctions.c +++ b/src/fsi_corefunctions.c @@ -103,79 +103,360 @@ void fsi_plot_coords() printf("(%d) Leaving ON_DEMAND(plot_coords)\n", myid); } -void count_dynamic_threads() -{ - printf("(%d) Entering count_dynamic_threads()\n", myid); - Domain *domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - face_t face; - int node_index, i=0; - Node* node = NULL; - Message( " (%d) counting dynamic threads:\n", myid); - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit (1); - } - dynamic_thread = domain->dynamic_threads; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - face_thread = DT_THREAD(dynamic_thread); - begin_f_loop (face, face_thread){ /* Thread face loop */ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, node_index){ /* Face node loop */ - node = F_NODE(face, face_thread, node_index); - NODE_MARK(node) = 11111; - } - } - } end_f_loop(face, face_thread) - dynamic_thread_size++; - } - dynamic_thread = dynamic_thread->next; - } - dynamic_thread_node_size = (int*) malloc(dynamic_thread_size * sizeof(int)); - for (i=0; i < dynamic_thread_size; i++){ - dynamic_thread_node_size[i] = 0; - } - - /* Reset node marks */ - dynamic_thread = domain->dynamic_threads; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - face_thread = DT_THREAD(dynamic_thread); - begin_f_loop (face, face_thread){ /* Thread face loop */ - f_node_loop (face, face_thread, node_index){ /* Face node loop */ - node = F_NODE(face, face_thread, node_index); - NODE_MARK(node) = 0; - } - } end_f_loop(face, face_thread) - } - dynamic_thread = dynamic_thread->next; - } - printf(" (%d) ... %d\n", myid, dynamic_thread_size); - printf("(%d) Leaving count_dynamic_threads()\n", myid); -} - -void gather_write_positions() +//void gather_write_positions() +//{ +// printf("(%d) Entering gather_write_positions()\n", myid); +// #if !RP_HOST +// int meshID = precicec_getMeshID("moving_base"); +// int i = 0; +// double center[ND_ND]; +// Domain* domain = NULL; +// Dynamic_Thread* dynamic_thread = NULL; +// Thread* face_thread = NULL; +// int thread_counter = 0; +// face_t face; +// +// Message(" (%d) Counting wet edges...\n", myid); +// domain = Get_Domain(1); +// if (domain == NULL){ +// Message(" (%d) ERROR: domain == NULL\n", myid); +// exit(1); +// } +// if (domain->dynamic_threads == NULL){ +// Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); +// exit(1); +// } +// dynamic_thread = domain->dynamic_threads; +// thread_counter = 0; +// while (dynamic_thread != NULL){ +// if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ +// Message("\n (%d) Thread index %d\n", myid, thread_counter); +// face_thread = DT_THREAD(dynamic_thread); +// if (face_thread == NULL){ +// Message(" (%d) ERROR: face_thread == NULL\n", myid); +// exit(1); +// } +// begin_f_loop (face, face_thread){ +// if (PRINCIPAL_FACE_P(face,face_thread)){ +// wet_edges_size++; +// } +// } end_f_loop(face, face_thread); +// thread_counter++; +// } +// dynamic_thread = dynamic_thread->next; +// } +// Message(" (%d) ...done (counted %d wet edges)\n", myid, wet_edges_size); +// Message(" (%d) Allocating %d force vector values\n", myid, wet_edges_size * ND_ND); +// if (forces != NULL){ +// Message(" (%d) ERROR: Forces vector allocated multiple times!\n", myid); +// } +// forces = (double*) malloc(wet_edges_size * ND_ND * sizeof(double)); +// Message(" (%d) Allocating %d force indices\n", myid, wet_edges_size); +// force_indices = (int*) malloc(wet_edges_size * sizeof(int)); +// /*force_indices_fluent = (int*) malloc(wet_edges_size * sizeof(int));*/ +// Message(" (%d) Setting write positions...", myid); +// dynamic_thread = domain->dynamic_threads; +// thread_counter = 0; +// i = 0; +// while (dynamic_thread != NULL){ +// if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ +// Message("\n (%d) Thread index %d\n", myid, thread_counter); +// face_thread = DT_THREAD(dynamic_thread); +// if (face_thread == NULL){ +// printf(" (%d) ERROR: face_thread == NULL\n", myid); +// fflush(stdout); +// exit(1); +// } +// begin_f_loop (face, face_thread){ +// if (PRINCIPAL_FACE_P(face,face_thread)){ +// F_CENTROID(center, face, face_thread); +// force_indices[i] = precicec_setMeshVertex(meshID, center); +// F_UDMI(face, face_thread, 0) = force_indices[i]; +// i++; +// } +// } end_f_loop(face, face_thread); +// thread_counter++; +// } +// dynamic_thread = dynamic_thread->next; +// } +// Message(" (%d) ...done counting wet edges\n", myid); +// did_gather_write_positions = BOOL_TRUE; +// #endif /* ! RP_HOST */ +// +// /* Gather precice read and write indices */ +// #if PARALLEL +// /*gather_precicec_write_indices();*/ +// #endif /* PARALLEL */ +// +// /* Setup precice index tables for checkpoint and load balancing */ +// #if !RP_NODE /* Host or serial */ +// #endif /* ! RP_NODE */ +// printf("(%d) Leaving gather_write_positions()\n", myid); +//} + +//void gather_read_positions(Dynamic_Thread* dt) +//{ +// printf("(%d) Entering gather_read_positions()\n", myid); +// Thread* face_thread = DT_THREAD(dt); +// Node* node; +// face_t face; +// int n = 0, dim = 0; +// int array_index = 0, node_index = 0; +// double coords[ND_ND]; +// int meshID = precicec_getMeshID("moving_base"); +// +// /* Count not yet as updated (from other threads) marked nodes */ +// begin_f_loop(face, face_thread){ +// if (PRINCIPAL_FACE_P(face,face_thread)){ +// f_node_loop (face, face_thread, n){ +// node = F_NODE ( face, face_thread, n ); +// if (NODE_POS_NEED_UPDATE(node)){ +// NODE_MARK(node) = 12345; +// wet_nodes_size++; +// dynamic_thread_node_size[thread_index]++; +// } +// } +// } +// } end_f_loop(face, face_thread); +// +// /* Get initial coordinates and reset update marking */ +// printf(" (%d) Reallocating %d initial positions ...\n", myid, wet_nodes_size); +// initial_coords = (double*) realloc(initial_coords, wet_nodes_size * ND_ND * sizeof(double)); +// displacements = (double*) realloc(displacements, wet_nodes_size * ND_ND * sizeof(double)); +// displ_indices = (int*) realloc(displ_indices, wet_nodes_size * sizeof(int)); +// array_index = wet_nodes_size - dynamic_thread_node_size[thread_index]; +// begin_f_loop (face, face_thread){ +// if (PRINCIPAL_FACE_P(face,face_thread)){ +// f_node_loop(face, face_thread, n){ +// node = F_NODE(face, face_thread, n); +// if (NODE_MARK(node) == 12345){ +// NODE_MARK(node) = 1; /*Set node to need update*/ +// for (dim=0; dim < ND_ND; dim++){ +// coords[dim] = NODE_COORD(node)[dim]; +// initial_coords[array_index*ND_ND+dim] = coords[dim]; +// } +// node_index = precicec_setMeshVertex(meshID,coords); +// displ_indices[array_index] = node_index; +// array_index++; +// } +// } +// } +// } end_f_loop(face, face_thread); +// printf(" (%d) Set %d (of %d) displacement read positions ...\n", myid, +// array_index - wet_nodes_size + dynamic_thread_node_size[thread_index], +// dynamic_thread_node_size[thread_index]); +// +// if (thread_index == dynamic_thread_size - 1){ +// did_gather_read_positions = BOOL_TRUE; +// } +// printf("(%d) Leaving gather_read_positions()\n", myid); +//} + +//void regather_read_positions(Dynamic_Thread* dt, int thread_new_size) +//{ +// Message(" (%d) Regathering read positions...\n", myid); +// int i = 0, j = 0, n = 0, dim = 0; +// Thread* face_thread = DT_THREAD(dt); +// Node* node; +// face_t face; +// int meshID = precicec_getMeshID("moving_base"); +// int all_size = 100;/*precicec_getReadNodesSize(meshID); TODO: read mesh size from Fluent, 100 is just a dummy value!*/ +// int displID = precicec_getDataID("Displacements", meshID); +// double* new_coords = (double*) malloc(thread_new_size * ND_ND * sizeof(double)); +// int* new_indices = (int*) malloc(thread_new_size * sizeof(double)); +// double* all_coords = (double*) malloc(all_size * ND_ND * sizeof(double)); +// double* all_displ = (double*) malloc(all_size * ND_ND * sizeof(double)); +// int* vertexIDs = (int*) malloc(all_size * sizeof(int)); +// double* tail_coords = NULL; +// int* tail_indices = NULL; +// /*double coords[ND_ND];*/ +// int left_i, right_i; +// int front_size, tail_size, new_size; +// +// for (i=0; i < all_size; i++){ +// vertexIDs[i] = i; +// } +// precicec_readBlockVectorData(displID, all_size, vertexIDs, all_displ); +// for (i=0; i < all_size*ND_ND; i++){ +// if (i < all_size*ND_ND) { +// printf(" (%d) coods %.16E\n", myid, all_coords[i]); +// fflush(stdout); +// } +// all_coords[i] += all_displ[i]; +// } +// +// /* Determine new indices, positions, and displacements */ +// i = 0; +// begin_f_loop(face, face_thread){ +// if (PRINCIPAL_FACE_P(face,face_thread)){ +// f_node_loop (face, face_thread, n){ +// node = F_NODE(face, face_thread, n); +// if (NODE_POS_NEED_UPDATE(node)){ +// NODE_MARK(node) = 12345; +// for (j=0; j < all_size; j++){ /* Find position index in all positions */ +// for (dim=0; dim < ND_ND; dim++){ /* Vector equality comp */ +// if (i < 10){ +// printf(" (%d) %.16E == %.16E\n", myid, NODE_COORD(node)[dim], +// all_coords[j*ND_ND+dim]); +// fflush(stdout); +// } +// +// if (fabs(NODE_COORD(node)[dim] - all_coords[j*ND_ND+dim]) > 1e-7){ +// break; +// } +// } +// if (dim == ND_ND){ /* If equal */ +// /*printf(" (%d) Equal!\n", myid); fflush(stdout);*/ +// new_indices[i] = vertexIDs[j]; +// for (dim=0; dim < ND_ND; dim++){ +// left_i = i*ND_ND+dim; +// right_i = j*ND_ND+dim; +// new_coords[left_i] = all_coords[right_i] - all_displ[right_i]; +// } +// break; +// } +// } +// if (j == all_size){ +// printf(" (%d) ERROR: Didn't find suitable index while regathering read indices!\n", myid); +// fflush(stdout); +// exit(1); +// } +// i++; +// } +// } +// } +// } end_f_loop(face, face_thread); +// +// /* Reset node marks */ +// begin_f_loop(face, face_thread){ +// if (PRINCIPAL_FACE_P(face,face_thread)){ +// f_node_loop (face, face_thread, n){ +// node = F_NODE(face, face_thread, n); +// if (NODE_MARK(node) == 12345){ +// NODE_MARK(node) = 1; /* Set node to need update*/ +// } +// } +// } +// } end_f_loop(face, face_thread); +// +// /* Count entries before this face thread and after it */ +// front_size = 0; +// for (i=0; i < thread_index; i++){ +// front_size += dynamic_thread_node_size[i]; +// } +// tail_size = 0; +// for (i=thread_index+1; i < dynamic_thread_size; i++){ +// tail_size += dynamic_thread_node_size[i]; +// } +// tail_coords = (double*) malloc(tail_size*ND_ND*sizeof(double)); +// tail_indices = (int*) malloc(tail_size*sizeof(int)); +// +// /* Store tail entries */ +// for (i=0; i < tail_size; i++){ +// j = front_size + dynamic_thread_node_size[thread_index] + i; +// for (dim=0; dim < ND_ND; dim++){ +// tail_coords[i*ND_ND+dim] = initial_coords[j*ND_ND+dim]; +// } +// tail_indices[i] = displ_indices[j]; +// } +// +// /* Insert new and tail entries */ +// new_size = front_size + thread_new_size + tail_size; +// initial_coords = (double*) realloc(initial_coords, new_size * ND_ND * sizeof(double)); +// displacements = (double*) realloc(displacements, new_size * ND_ND * sizeof(double)); +// displ_indices = (int*) realloc(displ_indices, new_size * sizeof(int)); +// for (i=0; i < thread_new_size; i++){ +// j = front_size + i; +// for (dim=0; dim < ND_ND; dim++){ +// initial_coords[j*ND_ND+dim] = new_coords[i*ND_ND+dim]; +// } +// printf(" (%d) new index: %d\n", myid, new_indices[i]); +// displ_indices[j] = new_indices[i]; +// } +// for (i=0; i < tail_size; i++){ +// j = front_size + thread_new_size + i; +// for (dim=0; dim < ND_ND; dim++){ +// initial_coords[j*ND_ND+dim] = tail_coords[i*ND_ND+dim]; +// } +// displ_indices[j] = tail_indices[i]; +// } +// +// wet_nodes_size -= dynamic_thread_node_size[thread_index]; +// wet_nodes_size += thread_new_size; +// dynamic_thread_node_size[thread_index] = thread_new_size; +// +// free(vertexIDs); +// free(all_coords); +// free(new_indices); +// free(new_coords); +// free(tail_indices); +// free(tail_coords); +// +// Message(" (%d) ... done regathering read positions...\n", myid); fflush(stdout); +//} + +//void regather_write_positions(int current_size) +//{ +// #if !RP_HOST +// int i = 0; +// Domain* domain = NULL; +// Dynamic_Thread* dynamic_thread = NULL; +// Thread* face_thread = NULL; +// int thread_counter = 0; +// face_t face; +// +// Message(" (%d) Regather write positions...\n", myid); +// +// forces = (double*) realloc(forces, current_size * ND_ND * sizeof(double)); +// force_indices = (int*) realloc(force_indices, current_size * sizeof(int)); +// +// domain = Get_Domain(1); +// if (domain == NULL){ +// Message(" (%d) ERROR: domain == NULL\n", myid); +// exit(1); +// } +// if (domain->dynamic_threads == NULL){ +// Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); +// exit(1); +// } +// dynamic_thread = domain->dynamic_threads; +// thread_counter = 0; +// i = 0; +// while (dynamic_thread != NULL){ +// if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ +// Message("\n (%d) Thread index %d\n", myid, thread_counter); +// face_thread = DT_THREAD(dynamic_thread); +// if (face_thread == NULL){ +// Message(" (%d) ERROR: face_thread == NULL\n", myid); +// exit(1); +// } +// begin_f_loop (face, face_thread){ +// if (PRINCIPAL_FACE_P(face,face_thread)){ +// force_indices[i] = F_UDMI(face, face_thread, 0); +// i++; +// } +// } end_f_loop(face, face_thread); +// thread_counter++; +// } +// dynamic_thread = dynamic_thread->next; +// } +// wet_edges_size = current_size; +// Message(" (%d) ...done regathering write positions\n", myid); +// #endif /* ! RP_HOST */ +//} + +int check_write_positions() { - printf("(%d) Entering gather_write_positions()\n", myid); #if !RP_HOST - int meshID = precicec_getMeshID("moving_base"); - int i = 0; - double center[ND_ND]; Domain* domain = NULL; Dynamic_Thread* dynamic_thread = NULL; Thread* face_thread = NULL; int thread_counter = 0; face_t face; + int wet_edges_check_size = 0; - Message(" (%d) Counting wet edges...\n", myid); + Message(" (%d) Checking write positions...\n", myid); domain = Get_Domain(1); if (domain == NULL){ Message(" (%d) ERROR: domain == NULL\n", myid); @@ -192,314 +473,64 @@ void gather_write_positions() Message("\n (%d) Thread index %d\n", myid, thread_counter); face_thread = DT_THREAD(dynamic_thread); if (face_thread == NULL){ - Message(" (%d) ERROR: face_thread == NULL\n", myid); + Message(" (%d) ERROR: Thread %d: face_thread == NULL\n", myid, thread_counter); exit(1); } begin_f_loop (face, face_thread){ if (PRINCIPAL_FACE_P(face,face_thread)){ - wet_edges_size++; + wet_edges_check_size++; } } end_f_loop(face, face_thread); thread_counter++; } dynamic_thread = dynamic_thread->next; } - Message(" (%d) ...done (counted %d wet edges)\n", myid, wet_edges_size); - Message(" (%d) Allocating %d force vector values\n", myid, wet_edges_size * ND_ND); - if (forces != NULL){ - Message(" (%d) ERROR: Forces vector allocated multiple times!\n", myid); + Message(" (%d) ...done (currently %d wet edges, old is %d)", myid, + wet_edges_check_size, wet_edges_size); + if (wet_edges_check_size != wet_edges_size) { + return wet_edges_check_size; } - forces = (double*) malloc(wet_edges_size * ND_ND * sizeof(double)); - Message(" (%d) Allocating %d force indices\n", myid, wet_edges_size); - force_indices = (int*) malloc(wet_edges_size * sizeof(int)); - /*force_indices_fluent = (int*) malloc(wet_edges_size * sizeof(int));*/ - Message(" (%d) Setting write positions...", myid); - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - i = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - Message("\n (%d) Thread index %d\n", myid, thread_counter); - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - printf(" (%d) ERROR: face_thread == NULL\n", myid); - fflush(stdout); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - F_CENTROID(center, face, face_thread); - force_indices[i] = precicec_setMeshVertex(meshID, center); - F_UDMI(face, face_thread, 0) = force_indices[i]; - i++; - } - } end_f_loop(face, face_thread); - thread_counter++; - } - dynamic_thread = dynamic_thread->next; - } - Message(" (%d) ...done counting wet edges\n", myid); - did_gather_write_positions = BOOL_TRUE; - #endif /* ! RP_HOST */ - - /* Gather precice read and write indices */ - #if PARALLEL - /*gather_precicec_write_indices();*/ - #endif /* PARALLEL */ - - /* Setup precice index tables for checkpoint and load balancing */ - #if !RP_NODE /* Host or serial */ - #endif /* ! RP_NODE */ - printf("(%d) Leaving gather_write_positions()\n", myid); + #endif // ! RP_HOST + return -1; } -void gather_read_positions(Dynamic_Thread* dt) +int check_read_positions(Dynamic_Thread* dt) { - printf("(%d) Entering gather_read_positions()\n", myid); - Thread* face_thread = DT_THREAD(dt); - Node* node; - face_t face; - int n = 0, dim = 0; - int array_index = 0, node_index = 0; - double coords[ND_ND]; - int meshID = precicec_getMeshID("moving_base"); - - /* Count not yet as updated (from other threads) marked nodes */ - begin_f_loop(face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop (face, face_thread, n){ - node = F_NODE ( face, face_thread, n ); - if (NODE_POS_NEED_UPDATE(node)){ - NODE_MARK(node) = 12345; - wet_nodes_size++; - dynamic_thread_node_size[thread_index]++; - } - } - } - } end_f_loop(face, face_thread); - - /* Get initial coordinates and reset update marking */ - printf(" (%d) Reallocating %d initial positions ...\n", myid, wet_nodes_size); - initial_coords = (double*) realloc(initial_coords, wet_nodes_size * ND_ND * sizeof(double)); - displacements = (double*) realloc(displacements, wet_nodes_size * ND_ND * sizeof(double)); - displ_indices = (int*) realloc(displ_indices, wet_nodes_size * sizeof(int)); - array_index = wet_nodes_size - dynamic_thread_node_size[thread_index]; - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - f_node_loop(face, face_thread, n){ - node = F_NODE(face, face_thread, n); - if (NODE_MARK(node) == 12345){ - NODE_MARK(node) = 1; /*Set node to need update*/ - for (dim=0; dim < ND_ND; dim++){ - coords[dim] = NODE_COORD(node)[dim]; - initial_coords[array_index*ND_ND+dim] = coords[dim]; - } - node_index = precicec_setMeshVertex(meshID,coords); - displ_indices[array_index] = node_index; - array_index++; - } - } - } - } end_f_loop(face, face_thread); - printf(" (%d) Set %d (of %d) displacement read positions ...\n", myid, - array_index - wet_nodes_size + dynamic_thread_node_size[thread_index], - dynamic_thread_node_size[thread_index]); - - if (thread_index == dynamic_thread_size - 1){ - did_gather_read_positions = BOOL_TRUE; - } - printf("(%d) Leaving gather_read_positions()\n", myid); -} - -void regather_read_positions(Dynamic_Thread* dt, int thread_new_size) -{ - Message(" (%d) Regathering read positions...\n", myid); - int i = 0, j = 0, n = 0, dim = 0; + Message(" (%d) Checking read positions...\n", myid); + int i = 0, n = 0; Thread* face_thread = DT_THREAD(dt); Node* node; face_t face; - int meshID = precicec_getMeshID("moving_base"); - int all_size = 100;/*precicec_getReadNodesSize(meshID); TODO: read mesh size from Fluent, 100 is just a dummy value!*/ - int displID = precicec_getDataID("Displacements", meshID); - double* new_coords = (double*) malloc(thread_new_size * ND_ND * sizeof(double)); - int* new_indices = (int*) malloc(thread_new_size * sizeof(double)); - double* all_coords = (double*) malloc(all_size * ND_ND * sizeof(double)); - double* all_displ = (double*) malloc(all_size * ND_ND * sizeof(double)); - int* vertexIDs = (int*) malloc(all_size * sizeof(int)); - double* tail_coords = NULL; - int* tail_indices = NULL; - /*double coords[ND_ND];*/ - int left_i, right_i; - int front_size, tail_size, new_size; - for (i=0; i < all_size; i++){ - vertexIDs[i] = i; - } - precicec_readBlockVectorData(displID, all_size, vertexIDs, all_displ); - for (i=0; i < all_size*ND_ND; i++){ - if (i < all_size*ND_ND) { - printf(" (%d) coods %.16E\n", myid, all_coords[i]); - fflush(stdout); - } - all_coords[i] += all_displ[i]; - } - - /* Determine new indices, positions, and displacements */ - i = 0; + // Count nodes begin_f_loop(face, face_thread){ if (PRINCIPAL_FACE_P(face,face_thread)){ f_node_loop (face, face_thread, n){ node = F_NODE(face, face_thread, n); if (NODE_POS_NEED_UPDATE(node)){ NODE_MARK(node) = 12345; - for (j=0; j < all_size; j++){ /* Find position index in all positions */ - for (dim=0; dim < ND_ND; dim++){ /* Vector equality comp */ - if (i < 10){ - printf(" (%d) %.16E == %.16E\n", myid, NODE_COORD(node)[dim], - all_coords[j*ND_ND+dim]); - fflush(stdout); - } - - if (fabs(NODE_COORD(node)[dim] - all_coords[j*ND_ND+dim]) > 1e-7){ - break; - } - } - if (dim == ND_ND){ /* If equal */ - /*printf(" (%d) Equal!\n", myid); fflush(stdout);*/ - new_indices[i] = vertexIDs[j]; - for (dim=0; dim < ND_ND; dim++){ - left_i = i*ND_ND+dim; - right_i = j*ND_ND+dim; - new_coords[left_i] = all_coords[right_i] - all_displ[right_i]; - } - break; - } - } - if (j == all_size){ - printf(" (%d) ERROR: Didn't find suitable index while regathering read indices!\n", myid); - fflush(stdout); - exit(1); - } i++; } } } } end_f_loop(face, face_thread); - /* Reset node marks */ + // Reset node marks begin_f_loop(face, face_thread){ if (PRINCIPAL_FACE_P(face,face_thread)){ f_node_loop (face, face_thread, n){ node = F_NODE(face, face_thread, n); if (NODE_MARK(node) == 12345){ - NODE_MARK(node) = 1; /* Set node to need update*/ + NODE_MARK(node) = 1; // Set node to need update } } } } end_f_loop(face, face_thread); - /* Count entries before this face thread and after it */ - front_size = 0; - for (i=0; i < thread_index; i++){ - front_size += dynamic_thread_node_size[i]; - } - tail_size = 0; - for (i=thread_index+1; i < dynamic_thread_size; i++){ - tail_size += dynamic_thread_node_size[i]; - } - tail_coords = (double*) malloc(tail_size*ND_ND*sizeof(double)); - tail_indices = (int*) malloc(tail_size*sizeof(int)); - - /* Store tail entries */ - for (i=0; i < tail_size; i++){ - j = front_size + dynamic_thread_node_size[thread_index] + i; - for (dim=0; dim < ND_ND; dim++){ - tail_coords[i*ND_ND+dim] = initial_coords[j*ND_ND+dim]; - } - tail_indices[i] = displ_indices[j]; - } - - /* Insert new and tail entries */ - new_size = front_size + thread_new_size + tail_size; - initial_coords = (double*) realloc(initial_coords, new_size * ND_ND * sizeof(double)); - displacements = (double*) realloc(displacements, new_size * ND_ND * sizeof(double)); - displ_indices = (int*) realloc(displ_indices, new_size * sizeof(int)); - for (i=0; i < thread_new_size; i++){ - j = front_size + i; - for (dim=0; dim < ND_ND; dim++){ - initial_coords[j*ND_ND+dim] = new_coords[i*ND_ND+dim]; - } - printf(" (%d) new index: %d\n", myid, new_indices[i]); - displ_indices[j] = new_indices[i]; - } - for (i=0; i < tail_size; i++){ - j = front_size + thread_new_size + i; - for (dim=0; dim < ND_ND; dim++){ - initial_coords[j*ND_ND+dim] = tail_coords[i*ND_ND+dim]; - } - displ_indices[j] = tail_indices[i]; - } - - wet_nodes_size -= dynamic_thread_node_size[thread_index]; - wet_nodes_size += thread_new_size; - dynamic_thread_node_size[thread_index] = thread_new_size; - - free(vertexIDs); - free(all_coords); - free(new_indices); - free(new_coords); - free(tail_indices); - free(tail_coords); - - Message(" (%d) ... done regathering read positions...\n", myid); fflush(stdout); -} - -void regather_write_positions(int current_size) -{ - #if !RP_HOST - int i = 0; - Domain* domain = NULL; - Dynamic_Thread* dynamic_thread = NULL; - Thread* face_thread = NULL; - int thread_counter = 0; - face_t face; - - Message(" (%d) Regather write positions...\n", myid); - - forces = (double*) realloc(forces, current_size * ND_ND * sizeof(double)); - force_indices = (int*) realloc(force_indices, current_size * sizeof(int)); - - domain = Get_Domain(1); - if (domain == NULL){ - Message(" (%d) ERROR: domain == NULL\n", myid); - exit(1); - } - if (domain->dynamic_threads == NULL){ - Message(" (%d) ERROR: domain.dynamic_threads == NULL\n", myid); - exit(1); - } - dynamic_thread = domain->dynamic_threads; - thread_counter = 0; - i = 0; - while (dynamic_thread != NULL){ - if (strncmp("gridmotions", dynamic_thread->profile_udf_name, 11) == 0){ - Message("\n (%d) Thread index %d\n", myid, thread_counter); - face_thread = DT_THREAD(dynamic_thread); - if (face_thread == NULL){ - Message(" (%d) ERROR: face_thread == NULL\n", myid); - exit(1); - } - begin_f_loop (face, face_thread){ - if (PRINCIPAL_FACE_P(face,face_thread)){ - force_indices[i] = F_UDMI(face, face_thread, 0); - i++; - } - } end_f_loop(face, face_thread); - thread_counter++; - } - dynamic_thread = dynamic_thread->next; + if (i != dynamic_thread_node_size[thread_index]){ + Message(" (%d) Wet node count has changed for dynamic thread %d!\n", + myid, thread_index); + return i; } - wet_edges_size = current_size; - Message(" (%d) ...done regathering write positions\n", myid); - #endif /* ! RP_HOST */ + return -1; } diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/udf_names.c b/src/udf_names.c similarity index 57% rename from examples/Cavity2D/libudf/lnamd64/2ddp_host/udf_names.c rename to src/udf_names.c index c4b7fe2..5e0bb9f 100644 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/udf_names.c +++ b/src/udf_names.c @@ -4,14 +4,8 @@ #include "prop.h" #include "dpm.h" extern DEFINE_INIT(init,domain); -extern DEFINE_ON_DEMAND(write_and_advance); -extern DEFINE_GRID_MOTION(gridmotions,domain,dt,time,dtime); -extern DEFINE_ON_DEMAND(plot_coords); UDF_Data udf_data[] = { {"init", (void (*)(void))init, UDF_TYPE_INIT}, -{"write_and_advance", (void (*)(void))write_and_advance, UDF_TYPE_ON_DEMAND}, -{"gridmotions", (void (*)(void))gridmotions, UDF_TYPE_GRID_MOTION}, -{"plot_coords", (void (*)(void))plot_coords, UDF_TYPE_ON_DEMAND}, }; int n_udf_data = sizeof(udf_data)/sizeof(UDF_Data); #include "version.h" diff --git a/examples/Cavity2D/libudf/lnamd64/2ddp_host/user.udf b/src/user.udf similarity index 62% rename from examples/Cavity2D/libudf/lnamd64/2ddp_host/user.udf rename to src/user.udf index 4d30ed8..77f4c5b 100644 --- a/examples/Cavity2D/libudf/lnamd64/2ddp_host/user.udf +++ b/src/user.udf @@ -1,5 +1,5 @@ CSOURCES= fsi_udf.c fsi.c HSOURCES= fsi.h -FLUENT_INC=/home/ishaan/ansys_inc/v195/fluent +FLUENT_INC= /opt/Software/ansys/ansys_inc/v212/fluent HOST_FLAGS=-DUSE_UDF_HOST_DUMMY GPU_SUPPORT=off