From 00922c7b2ee18ca09664e16ba80b8430b3b55228 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Mon, 3 Aug 2020 11:32:56 +0200 Subject: [PATCH 1/7] Add run/clean scripts for SU2-CalculiX --- FSI/flap_perp/SU2-CalculiX/Allclean | 54 ++++ FSI/flap_perp/SU2-CalculiX/Allrun | 80 ++++++ .../Fluid/euler_config_coupled.cfg | 13 +- .../euler_config_coupled_mergeSolution.cfg | 267 ------------------ FSI/flap_perp/SU2-CalculiX/precice-config.xml | 2 +- FSI/flap_perp/SU2-CalculiX/runFluid | 28 ++ FSI/flap_perp/SU2-CalculiX/runSolid | 14 + 7 files changed, 188 insertions(+), 270 deletions(-) create mode 100755 FSI/flap_perp/SU2-CalculiX/Allclean create mode 100755 FSI/flap_perp/SU2-CalculiX/Allrun delete mode 100644 FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled_mergeSolution.cfg create mode 100755 FSI/flap_perp/SU2-CalculiX/runFluid create mode 100755 FSI/flap_perp/SU2-CalculiX/runSolid diff --git a/FSI/flap_perp/SU2-CalculiX/Allclean b/FSI/flap_perp/SU2-CalculiX/Allclean new file mode 100755 index 000000000..f8286848b --- /dev/null +++ b/FSI/flap_perp/SU2-CalculiX/Allclean @@ -0,0 +1,54 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +echo "Cleaning..." + +# Participant 1: Fluid +Participant1="Fluid" +cd ${Participant1} + # Clean the result and auxiliary files + rm -fv flow_*.vtk + rm -fv history_*.vtk + rm -fv restart_flow_*.dat + rm -fv forces_breakdown.dat + rm -fv surface_flow_*.csv +cd .. + +# Remove the log files +rm -fv ${Participant1}.log + +# Participant 2: Solid +Participant2="Solid" +cd ${Participant2} + # Clean the case + rm -fv *.log + rm -fv flap.cvg + rm -fv flap.dat + rm -fv flap.frd + rm -fv flap.sta + rm -fv flap.12d +cd .. +# Remove the log files +rm -fv spooles.out +rm -fv ${Participant2}.log + +# Remove the preCICE-related log files +echo "Deleting the preCICE log files..." +rm -fv \ + precice-*.log \ + precice-postProcessingInfo.log \ + precice-*-events.json + +# Output files for preCICE versions before 1.2: +rm -fv \ + iterations-${Participant1}.txt iterations-${Participant2}.txt \ + convergence-${Participant1}.txt convergence-${Participant2}.txt \ + Events-${Participant1}.log Events-${Participant2}.log \ + EventTimings-${Participant1}.log EventTimings-${Participant2}.log + +# Remove the preCICE address files +rm -rfv precice-run +rm -fv .*.address + +echo "Cleaning complete!" +#------------------------------------------------------------------------------ diff --git a/FSI/flap_perp/SU2-CalculiX/Allrun b/FSI/flap_perp/SU2-CalculiX/Allrun new file mode 100755 index 000000000..6ec38cc2f --- /dev/null +++ b/FSI/flap_perp/SU2-CalculiX/Allrun @@ -0,0 +1,80 @@ +#!/bin/bash + +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions + +# This script prepares and runs all the participants in one terminal, +# forwarding the solvers' output to log files. +# Alternatively, you may execute the scripts "runSolid" and "runFluid" +# in separate terminals. + +# Run this script with "-parallel" for parallel simulations + +# The script "Allclean" cleans-up the result and log files. +# Set up the run parameters: + +# 1 for true, 0 for false +parallel=0 +if [ "$1" = "-parallel" ]; then + parallel=1 +fi + +# =============== Participant 1: Fluid =========================== +Participant1="Fluid" +Solver1="SU2_CFD" +nproc=2 + +# Run and get the process id +if [ $parallel -eq 1 ]; then + echo " Starting the ${Participant1} participant in parallel..." + mpirun -np ${nproc} ${Solver1} Fluid/euler_config_coupled.cfg > ${Participant1}.log 2>&1 & +else + echo " Starting the ${Participant1} participant in serial..." + ${Solver1} Fluid/euler_config_coupled.cfg > ${Participant1}.log 2>&1 & +fi +PIDParticipant1=$! + +# =============== Participant 2: Solid =========================== +Participant2="Solid" +Solver2="ccx_preCICE" + + # You can use CalculiX CGX to setup the structural simulation from sratch. + # This will re-generate the all.msh, fix1_beam.nam, interface_beam.nam files. + # + # # Prepare in silent mode + # echo "Preparing the ${Participant2} participant..." + # cd ${Participant2} + # echo " Executing cgx (provided by CalculiX, make sure this exists)..." + # cgx -bg pre_flap.fbd > prepare_flap.log 2>&1 + # cd .. + + # Run + echo " Starting the ${Participant2} participant..." + ${Solver2} -i ${Participant2}/flap -precice-participant Calculix > ${Participant2}.log 2>&1 & + PIDParticipant2=$! + + +# =============== Wait for all the participants to finish ======= +echo "Waiting for the participants to exit..., PIDs: ${PIDParticipant1}, ${PIDParticipant2}" +echo "(you may run 'tail -f ${Participant1}.log' in another terminal to check the progress)" + +echo "To interrupt the simulation, press 'c'. Ctrl+C will only send the processes to the background." +while [ -e /proc/${PIDParticipant1} ]; do + read -r -t1 -n1 input + if [ "$input" = "c" ]; then + kill ${PIDParticipant1} + kill ${PIDParticipant2} + false + fi +done + +if [ $? -ne 0 ] || [ "$(grep -c -E "error:" ${Participant1}.log)" -ne 0 ] || [ "$(grep -c -E "error:" ${Participant2}.log)" -ne 0 ]; then + echo "" + echo "Something went wrong... See the log files for more." + # Precaution + kill ${PIDParticipant1} + kill ${PIDParticipant2} +else + echo "" + echo "The simulation completed! (check for any errors)" +fi diff --git a/FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled.cfg b/FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled.cfg index 304104c91..6f522fe30 100644 --- a/FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled.cfg +++ b/FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled.cfg @@ -212,8 +212,14 @@ SOLUTION_FLOW_FILENAME= Fluid/initial_flow.dat % Output file format (PARAVIEW, TECPLOT, STL) OUTPUT_FORMAT= PARAVIEW % +% Output file with the forces breakdown +BREAKDOWN_FILENAME= Fluid/forces_breakdown.dat +% +% Output file restart flow +RESTART_FLOW_FILENAME= Fluid/restart_flow.dat +% % Output file convergence history (w/o extension) -CONV_FILENAME= history +CONV_FILENAME= Fluid/history % % Write binary restart files (YES, NO) WRT_BINARY_RESTART= NO @@ -222,7 +228,10 @@ WRT_BINARY_RESTART= NO READ_BINARY_RESTART= NO % % Output file flow (w/o extension) variables -VOLUME_FLOW_FILENAME= flow +VOLUME_FLOW_FILENAME= Fluid/flow +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FLOW_FILENAME= Fluid/surface_flow % % Write surface solution files WRT_SRF_SOL= NO diff --git a/FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled_mergeSolution.cfg b/FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled_mergeSolution.cfg deleted file mode 100644 index 7847e818b..000000000 --- a/FSI/flap_perp/SU2-CalculiX/Fluid/euler_config_coupled_mergeSolution.cfg +++ /dev/null @@ -1,267 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: Coupled FSI simulation of fluid flow over a flap % -% Authors: Kirill Martynov, Dmytro Sashko, Jan Sültemeyer % -% Institution: Technische Universität München % -% Date: 01.11.2017 % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- PRECICE PROBLEM DEFINITION ------------% - -PRECICE_USAGE= YES -% -PRECICE_CONFIG_FILENAME= ./precice-config.xml -% -PRECICE_WETSURFACE_MARKER_NAME= wetSurface -% -PRECICE_NUMBER_OF_WETSURFACES= 1 - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% - -% Physical governing equations (EULER, NAVIER_STOKES, NS_PLASMA) -PHYSICAL_PROBLEM= EULER -% -% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) -MATH_PROBLEM= DIRECT -% -% Restart solution (NO, YES) -RESTART_SOL= YES - -% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% - -% Mach number (non-dimensional, based on the free-stream values) -MACH_NUMBER= 0.01 -% -% Angle of attack (degrees, only for compressible flows) -AOA= 0.0 -% -% Side-slip angle (degrees, only for compressible flows) -SIDESLIP_ANGLE= 0.0 -% -% Free-stream pressure (101325.0 N/m^2 by default) -FREESTREAM_PRESSURE= 101300.0 -% -% Free-stream temperature (288.15 K by default) -FREESTREAM_TEMPERATURE= 288.0 - -% ------------------------- UNSTEADY SIMULATION -------------------------------% - -% Unsteady simulation (NO, TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER, -% DUAL_TIME_STEPPING-2ND_ORDER, TIME_SPECTRAL) -UNSTEADY_SIMULATION= DUAL_TIME_STEPPING-1ST_ORDER -% -% Time Step for dual time stepping simulations (s) -UNST_TIMESTEP= 0.01 -% -% Total Physical Time for dual time stepping simulations (s) -UNST_TIME= 4.01 -% -% Number of internal iterations (dual time method) -UNST_INT_ITER= 200 -% -% Iteration number to begin unsteady restarts -UNST_RESTART_ITER= 1 - -% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% - -% Dynamic mesh simulation (NO, YES) -GRID_MOVEMENT= YES -% -% Type of dynamic mesh (NONE, RIGID_MOTION, DEFORMING, ROTATING_FRAME, -% MOVING_WALL, STEADY_TRANSLATION, FLUID_STRUCTURE, -% AEROELASTIC, ELASTICITY, EXTERNAL, -% AEROELASTIC_RIGID_MOTION, GUST, PRECICE_MOVEMENT) -GRID_MOVEMENT_KIND= PRECICE_MOVEMENT -% -% Moving wall boundary marker(s) (NONE = no marker, ignored for RIGID_MOTION) -MARKER_MOVING= ( wetSurface0 ) - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% - -% Euler wall boundary marker(s) (NONE = no marker) -MARKER_EULER= ( upper_wall, lower_wall, wetSurface0 ) -% -% Inlet boundary marker(s) (NONE = no marker) -% Format: ( inlet marker, total temperature, total pressure, flow_direction_x, -% flow_direction_y, flow_direction_z, ... ) where flow_direction is -% a unit vector. -MARKER_INLET= ( inlet, 288.6, 101400.0, 1.0, 0.0, 0.0 ) -% -% Outlet boundary marker(s) (NONE = no marker) -% Format: ( outlet marker, back pressure (static), ... ) -MARKER_OUTLET= ( outlet, 101300.0 ) -% -% Symmetry boundary marker for quasi-2D simulation -MARKER_SYM = ( symmetry ) - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% - -% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) -NUM_METHOD_GRAD= GREEN_GAUSS -% -% Courant-Friedrichs-Lewy condition of the finest grid -CFL_NUMBER= 2.0 -% -% Adaptive CFL number (NO, YES) -CFL_ADAPT= NO -% -% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, -% CFL max value ) -CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) -% -% Runge-Kutta alpha coefficients -RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) -% -% Number of total iterations -EXT_ITER= 999999 - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% - -% Linear solver for implicit formulations (BCGSTAB, FGMRES) -LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) -LINEAR_SOLVER_PREC= LU_SGS -% -% Minimum error of the linear solver for implicit formulations -LINEAR_SOLVER_ERROR= 1E-4 -% -% Max number of iterations of the linear solver for the implicit formulation -LINEAR_SOLVER_ITER= 20 - -% -------------------------- MULTIGRID PARAMETERS -----------------------------% - -% Multi-Grid Levels (0 = no multi-grid) -MGLEVEL= 3 -% -% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) -MGCYCLE= V_CYCLE -% -% Multi-grid pre-smoothing level -MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) -% -% Multi-grid post-smoothing level -MG_POST_SMOOTH= ( 0, 0, 0, 0 ) -% -% Jacobi implicit smoothing of the correction -MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) -% -% Damping factor for the residual restriction -MG_DAMP_RESTRICTION= 0.9 -% -% Damping factor for the correction prolongation -MG_DAMP_PROLONGATION= 0.9 - -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% - -% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, -% TURKEL_PREC, MSW) -CONV_NUM_METHOD_FLOW= JST -% -% Monotonic Upwind Scheme for Conservation Laws (TVD) in the flow equations. -% Required for 2nd order upwind schemes (NO, YES) -MUSCL_FLOW= YES -% -% Slope limiter (NONE, VENKATAKRISHNAN, VENKATAKRISHNAN_WANG, -% BARTH_JESPERSEN, VAN_ALBADA_EDGE) -SLOPE_LIMITER_FLOW= VENKATAKRISHNAN -% -% Coefficient for the Venkat's limiter (upwind scheme). A larger values decrease -% the extent of limiting, values approaching zero cause -% lower-order approximation to the solution (0.05 by default) -VENKAT_LIMITER_COEFF= 0.05 -% -% 2nd and 4th order artificial dissipation coefficients for -% the JST method ( 0.5, 0.02 by default ) -JST_SENSOR_COEFF= ( 0.5, 0.02 ) -% -% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) -TIME_DISCRE_FLOW= EULER_IMPLICIT - -% --------------------------- CONVERGENCE PARAMETERS --------------------------% - -% Convergence criteria (CAUCHY, RESIDUAL) -% -CONV_CRITERIA= RESIDUAL -% -% Residual reduction (order of magnitude with respect to the initial value) -RESIDUAL_REDUCTION= 1 -% -% Min value of the residual (log10 of the residual) -RESIDUAL_MINVAL= -3.5 -% -% Start convergence criteria at iteration number -STARTCONV_ITER= 10 - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% - -% Write residuals -WRT_RESIDUALS= YES -% -% Mesh input file -MESH_FILENAME= Fluid/fluidMesh.su2 -% -% Mesh input file format (SU2, CGNS, NETCDF_ASCII) -MESH_FORMAT= SU2 -% -% Restart flow input file -SOLUTION_FLOW_FILENAME= Fluid/restart_flow.dat -% -% Output file format (PARAVIEW, TECPLOT, STL) -OUTPUT_FORMAT= PARAVIEW -% -% Output file convergence history (w/o extension) -CONV_FILENAME= history -% -% Write binary restart files (YES, NO) -WRT_BINARY_RESTART= NO -% -% Read binary restart files (YES, NO) -READ_BINARY_RESTART= NO -% -% Output file flow (w/o extension) variables -VOLUME_FLOW_FILENAME= flow -% -% Write surface solution files -WRT_SRF_SOL= NO -% -% Writing solution file frequency -WRT_SOL_FREQ= 1 -% -% Writing solution file frequency for physical time steps (dual time) -WRT_SOL_FREQ_DUALTIME= 1 -% -% Writing convergence history frequency -WRT_CON_FREQ= 1 -% -% Writing convergence history frequency -WRT_CON_FREQ_DUALTIME= 1 - -% ------------------------ GRID DEFORMATION PARAMETERS ------------------------% -% -% Linear solver or smoother for implicit formulations (FGMRES, RESTARTED_FGMRES, BCGSTAB) -DEFORM_LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (ILU, LU_SGS, JACOBI) -DEFORM_LINEAR_SOLVER_PREC= LU_SGS -% -% Number of smoothing iterations for mesh deformation -DEFORM_LINEAR_ITER= 50 -% -% Number of nonlinear deformation iterations (surface deformation increments) -DEFORM_NONLINEAR_ITER= 1 -% -% Print the residuals during mesh deformation to the console (YES, NO) -%DEFORM_CONSOLE_OUTPUT= NO -% -% Factor to multiply smallest cell volume for deform tolerance (0.001 default) -DEFORM_TOL_FACTOR = 0.1 -% -% Type of element stiffness imposed for FEA mesh deformation (INVERSE_VOLUME, -% WALL_DISTANCE, CONSTANT_STIFFNESS) -DEFORM_STIFFNESS_TYPE= INVERSE_VOLUME -% -% Visualize the deformation (NO, YES) -%VISUALIZE_DEFORMATION= YES diff --git a/FSI/flap_perp/SU2-CalculiX/precice-config.xml b/FSI/flap_perp/SU2-CalculiX/precice-config.xml index f92b97a05..80a333be8 100644 --- a/FSI/flap_perp/SU2-CalculiX/precice-config.xml +++ b/FSI/flap_perp/SU2-CalculiX/precice-config.xml @@ -40,7 +40,7 @@ - + diff --git a/FSI/flap_perp/SU2-CalculiX/runFluid b/FSI/flap_perp/SU2-CalculiX/runFluid new file mode 100755 index 000000000..c9edfc545 --- /dev/null +++ b/FSI/flap_perp/SU2-CalculiX/runFluid @@ -0,0 +1,28 @@ +#!/bin/bash +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions + +# Fluid participant + +# Run this script in one terminal and the "runSolid" script in another terminal. +# These scripts present how the two participants would be started manually. +# Alternatively, you may execute the "Allrun" script in one terminal. + +# Run this script with "-parallel" for parallel simulations + +# The script "Allclean" cleans-up the result and log files. + +# 1 for true, 0 for false +parallel=0 +if [ "$1" = "-parallel" ]; then + parallel=1 +fi + +echo "Preparing and running the Fluid participant..." + +if [ $parallel -eq 1 ]; then + mpirun -n 2 SU2_CFD Fluid/euler_config_coupled.cfg 2>&1 | tee Fluid.log +else + SU2_CFD Fluid/euler_config_coupled.cfg 2>&1 | tee Fluid.log +fi + diff --git a/FSI/flap_perp/SU2-CalculiX/runSolid b/FSI/flap_perp/SU2-CalculiX/runSolid new file mode 100755 index 000000000..2d2f2ec08 --- /dev/null +++ b/FSI/flap_perp/SU2-CalculiX/runSolid @@ -0,0 +1,14 @@ +#!/bin/bash + +# Solid participant + +# Run this script in one terminal and the "runFluid" script in another terminal. +# These scripts present how the two participants would be started manually. +# Alternatively, you may execute the "Allrun" script in one terminal. + +# The script "Allclean" cleans-up the result and log files. + +echo "Running the Solid participant..." + +# Run +ccx_preCICE -i Solid/flap -precice-participant Calculix 2>&1 | tee Solid.log From 952cd5d022152f5b78d8b7e185ee4f9b3240bfd3 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Tue, 4 Aug 2020 10:42:44 +0200 Subject: [PATCH 2/7] Remove SU2-CCX deprecated runTutorial scripts --- .../SU2-CalculiX/runTutorial_parallel.sh | 48 ------------------- .../SU2-CalculiX/runTutorial_serial.sh | 46 ------------------ 2 files changed, 94 deletions(-) delete mode 100755 FSI/flap_perp/SU2-CalculiX/runTutorial_parallel.sh delete mode 100755 FSI/flap_perp/SU2-CalculiX/runTutorial_serial.sh diff --git a/FSI/flap_perp/SU2-CalculiX/runTutorial_parallel.sh b/FSI/flap_perp/SU2-CalculiX/runTutorial_parallel.sh deleted file mode 100755 index 2d329f9a2..000000000 --- a/FSI/flap_perp/SU2-CalculiX/runTutorial_parallel.sh +++ /dev/null @@ -1,48 +0,0 @@ -#! /bin/bash - - -tmux has-session -t PreciceSU2-Calculix-newtonParallel 2>/dev/null -if [ "$?" -eq 1 ] ; then - tmux new-session -d -s 'PreciceSU2-Calculix-newtonParallel' - tmux split-window -v -fi - - -session=PreciceSU2-Calculix-newtonParallel -window=${session}:0 -pane_su2=${window}.0 -pane_Calculix=${window}.1 -tmux send-keys -t "$pane_su2" C-z '( time mpirun -n 2 SU2_CFD Fluid/euler_config_coupled.cfg ) 2>&1 | tee Su2.log' Enter -tmux select-pane -t "$pane_su2" -tmux select-window -t "$window" -tmux send-keys -t "$pane_Calculix" C-z '( time ccx_preCICE -i Solid/flap -precice-participant Calculix ) 2>&1 | tee Calculix.log' Enter -tmux select-pane -t "$pane_Calculix" -tmux select-window -t "$window" -tmux attach-session -t "$session" - -tmux detach -s "$session" - -SU2_SOL Fluid/euler_config_coupled_mergeSolution.cfg - -rm -rf Output -mkdir Output -cp flow*.vtk Output -cp euler_config_coupled.cfg Output -cp flap.inp Output -cp Calculix.log Output -cp Su2.log Output -cp precice-config.xml Output -cp point1.watchpoint.txt Output -cp plotDisplacement.sh Output -# clean everything -rm -f *log -rm -f *vtk -rm -f *txt -rm -f *csv -rm -f *out -rm -f restart_flow* -rm -f forces* -rm -f flap.[^i]* - - echo " Copying of results was successfull! Let's hope that simulation went well as well. Results are in the output - folder" diff --git a/FSI/flap_perp/SU2-CalculiX/runTutorial_serial.sh b/FSI/flap_perp/SU2-CalculiX/runTutorial_serial.sh deleted file mode 100755 index de486e22d..000000000 --- a/FSI/flap_perp/SU2-CalculiX/runTutorial_serial.sh +++ /dev/null @@ -1,46 +0,0 @@ -#! /bin/bash - - -tmux has-session -t PreciceSU2-Calculix-newtonParallel 2>/dev/null -if [ "$?" -eq 1 ] ; then - tmux new-session -d -s 'PreciceSU2-Calculix-newtonParallel' - tmux split-window -v -fi - - -session=PreciceSU2-Calculix-newtonParallel -window=${session}:0 -pane_su2=${window}.0 -pane_Calculix=${window}.1 -tmux send-keys -t "$pane_su2" C-z '( time SU2_CFD Fluid/euler_config_coupled.cfg ) 2>&1 | tee Su2.log' Enter -tmux select-pane -t "$pane_su2" -tmux select-window -t "$window" -tmux send-keys -t "$pane_Calculix" C-z '( time ccx_preCICE -i Solid/flap -precice-participant Calculix ) 2>&1 | tee Calculix.log' Enter -tmux select-pane -t "$pane_Calculix" -tmux select-window -t "$window" -tmux attach-session -t "$session" - -tmux detach -s "$session" - -rm -rf Output -mkdir Output -cp flow*.vtk Output -cp euler_config_coupled.cfg Output -cp flap.inp Output -cp Calculix.log Output -cp Su2.log Output -cp precice-config.xml Output -cp point1.watchpoint.txt Output -cp plotDisplacement.sh Output -# clean everything -rm -f *log -rm -f *vtk -rm -f *txt -rm -f *csv -rm -f *out -rm -f restart_flow* -rm -f forces* -rm -f flap.[^i]* - - echo " Copying of results was successfull! Let's hope that simulation went well as well. Results are in the output - folder" From 25128bedb742b67195cd3bdf9dc3d5f648992f37 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Tue, 4 Aug 2020 10:48:35 +0200 Subject: [PATCH 3/7] SU2-CalculiX: Update README.md for new run scripts --- FSI/flap_perp/SU2-CalculiX/README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/FSI/flap_perp/SU2-CalculiX/README.md b/FSI/flap_perp/SU2-CalculiX/README.md index 6e2b9135a..e95f34ec0 100644 --- a/FSI/flap_perp/SU2-CalculiX/README.md +++ b/FSI/flap_perp/SU2-CalculiX/README.md @@ -1,3 +1,7 @@ -# Tutorial for a coupled simulation with SU2 and CalculiX +# Tutorial for an FSI simulation of an elastic flap perpendicular to a channel flow using SU2 and CalculiX -The files in this folder can be used to run the tutorial test case described on this [Wiki page](https://github.com/precice/precice/wiki/FSI-tutorial). For running the case either follow the instructions given there or execute the script `runTutorial_serial.sh` or `runTutorial_parallel.sh` (with SU2 being executed with one or several processes, respectively). +This tutorial is described in the [preCICE wiki](https://github.com/precice/precice/wiki/FSI-tutorial). + +You may run the coupled simulation in serial using the script `Allrun` or in parallel with `Allrun -parallel`. The output of each step will be redirected to log files (mainly `Fluid.log` and `Solid.log`). You can cleanup the simulation using `Allclean`. + +If you prefer to run the two simulations in two different terminals and watch their output on the screen, use the (simpler) scripts `runFluid` (or `runFluid -parallel`) and `runSolid`. They also write the output to the same log files. From 098d163b3d10333f30e6f21fb068466fb260799c Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 12 Aug 2020 10:56:57 -0400 Subject: [PATCH 4/7] Update FSI/flap_perp/SU2-CalculiX/Allrun Co-authored-by: Benjamin Uekermann --- FSI/flap_perp/SU2-CalculiX/Allrun | 3 --- 1 file changed, 3 deletions(-) diff --git a/FSI/flap_perp/SU2-CalculiX/Allrun b/FSI/flap_perp/SU2-CalculiX/Allrun index 6ec38cc2f..f5932f00d 100755 --- a/FSI/flap_perp/SU2-CalculiX/Allrun +++ b/FSI/flap_perp/SU2-CalculiX/Allrun @@ -1,8 +1,5 @@ #!/bin/bash -cd ${0%/*} || exit 1 # Run from this directory -. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions - # This script prepares and runs all the participants in one terminal, # forwarding the solvers' output to log files. # Alternatively, you may execute the scripts "runSolid" and "runFluid" From 374a5ef9dc5ffa74716904d84ea2e07a1d3fc82e Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 12 Aug 2020 10:57:20 -0400 Subject: [PATCH 5/7] Update FSI/flap_perp/SU2-CalculiX/runFluid Co-authored-by: Benjamin Uekermann --- FSI/flap_perp/SU2-CalculiX/runFluid | 3 --- 1 file changed, 3 deletions(-) diff --git a/FSI/flap_perp/SU2-CalculiX/runFluid b/FSI/flap_perp/SU2-CalculiX/runFluid index c9edfc545..7527d01a6 100755 --- a/FSI/flap_perp/SU2-CalculiX/runFluid +++ b/FSI/flap_perp/SU2-CalculiX/runFluid @@ -1,6 +1,4 @@ #!/bin/bash -cd ${0%/*} || exit 1 # Run from this directory -. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions # Fluid participant @@ -25,4 +23,3 @@ if [ $parallel -eq 1 ]; then else SU2_CFD Fluid/euler_config_coupled.cfg 2>&1 | tee Fluid.log fi - From 704dd8ca2d6b49e5e312b2fa6676175e33be5774 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 12 Aug 2020 16:59:07 +0200 Subject: [PATCH 6/7] Update Allrun --- FSI/flap_perp/SU2-CalculiX/Allrun | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/FSI/flap_perp/SU2-CalculiX/Allrun b/FSI/flap_perp/SU2-CalculiX/Allrun index f5932f00d..564f45356 100755 --- a/FSI/flap_perp/SU2-CalculiX/Allrun +++ b/FSI/flap_perp/SU2-CalculiX/Allrun @@ -35,20 +35,20 @@ PIDParticipant1=$! Participant2="Solid" Solver2="ccx_preCICE" - # You can use CalculiX CGX to setup the structural simulation from sratch. - # This will re-generate the all.msh, fix1_beam.nam, interface_beam.nam files. - # - # # Prepare in silent mode - # echo "Preparing the ${Participant2} participant..." - # cd ${Participant2} - # echo " Executing cgx (provided by CalculiX, make sure this exists)..." - # cgx -bg pre_flap.fbd > prepare_flap.log 2>&1 - # cd .. +# You can use CalculiX CGX to setup the structural simulation from sratch. +# This will re-generate the all.msh, fix1_beam.nam, interface_beam.nam files. +# +# # Prepare in silent mode +# echo "Preparing the ${Participant2} participant..." +# cd ${Participant2} +# echo " Executing cgx (provided by CalculiX, make sure this exists)..." +# cgx -bg pre_flap.fbd > prepare_flap.log 2>&1 +# cd .. - # Run - echo " Starting the ${Participant2} participant..." - ${Solver2} -i ${Participant2}/flap -precice-participant Calculix > ${Participant2}.log 2>&1 & - PIDParticipant2=$! +# Run +echo " Starting the ${Participant2} participant..." +${Solver2} -i ${Participant2}/flap -precice-participant Calculix > ${Participant2}.log 2>&1 & +PIDParticipant2=$! # =============== Wait for all the participants to finish ======= From 03b6d0c385528d189603368ec62f2486af09d831 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Mon, 7 Sep 2020 13:58:29 +0200 Subject: [PATCH 7/7] Update SU2 plotDisplacement watchpoint name --- FSI/flap_perp/SU2-CalculiX/plotDisplacement.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FSI/flap_perp/SU2-CalculiX/plotDisplacement.sh b/FSI/flap_perp/SU2-CalculiX/plotDisplacement.sh index 6ccc0bb84..62a27931b 100755 --- a/FSI/flap_perp/SU2-CalculiX/plotDisplacement.sh +++ b/FSI/flap_perp/SU2-CalculiX/plotDisplacement.sh @@ -4,5 +4,5 @@ set grid set title 'Displacement of the Flap Tip' set xlabel 'Time [s]' set ylabel 'X-Displacement [m]' -plot "point1.watchpoint.txt" using 1:5 smooth cumulative title "" +plot "precice-Calculix-watchpoint-point1.log" using 1:5 smooth cumulative title "" EOF