USER_common_variables

simple box driving through a channel of water: USER_common_variables.dat

Have a look how the steady increase of MESHFREE points is put into pratice. See especially the two first alias parameters H_RelativeChangePerTimeCycle and N_TimeStepsAfterWhichRefinementStarts .
# cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c parameters of the simulation # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc begin_alias{} "H_RelativeChangePerTimeCycle" = "1.006" # every time cycle, the number of points changes by a factoir of H_RelativeChangePerTimeCycle^3 "N_TimeStepsAfterWhichRefinementStarts" = "200" # after this number of time cycles, the refinement of the point cloud steadily increases "H_min" = "0.20" # minimum smoothing length around the box "L_0" = "1.2" # length of umbrella around box where smoothing length is kept constant "dH_dr" = "0.04" # derivative of smoothing length "H_max" = "0.50" # maximum smoothing length "InitialWaterLevelAboveGround" = "0.5" # water level "InitialOffsetOfBox" = "1, 0, 0.20" # initial placement of the box "SpeedOfBox" = "4.0" # velocity of box in x-direction "ScalingOfPool" = "1, 1, 1" # stretch the pool if you like "ScalingOfBox" = "1, 1, 1" # stretch the box if you like end_alias # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Alias Section for geometry parts # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc begin_alias{} "pool" = " BC$BC_pool$ ACTIVE$init_always$ IDENT%IDENT_slip% MAT$Mat1$ TOUCH%TOUCH_liquid% MOVE$no_move$ LAYER0 CHAMBER1 " # "box" = " BC$BC_box$ ACTIVE$init_always$ IDENT%IDENT_slip% MAT$Mat1$ TOUCH%TOUCH_liquid% MOVE$MOVE_box$ LAYER0 CHAMBER1 POSTPROCESS$PP1$ SYMMETRYFACE1 SMOOTH_LENGTH$H_box$ " # "cube1" = " ACTIVE$init_always$ IDENT%IDENT_BlindAndEmpty% MAT$Mat1$ TOUCH%TOUCH_liquid% MOVE$MOVE_box$ LAYER0 CHAMBER1 " # "cube2" = " ACTIVE$init_always$ IDENT%IDENT_BlindAndEmpty% MAT$Mat1$ TOUCH%TOUCH_liquid% MOVE$no_move$ LAYER0 CHAMBER1 " # "cover" = " IGNORE " # "MonitorPointsStatic" = " ACTIVE$init_always$ MAT$Mat1$ MOVE$no_move$ LAYER0 CHAMBER1 POSTPROCESS$PP_MonitorPointsStatic$ " # "MonitorPointsDynamic" = " ACTIVE$init_always$ MAT$Mat1$ MOVE$MOVE_box$ LAYER0 CHAMBER1 POSTPROCESS$PP_MonitorPointsDynamic$ " # "SimplePoint" = " ACTIVE$init_always$ MAT$Mat1$ MOVE$no_move$ LAYER0 CHAMBER1 SMOOTH_LENGTH$H_point$ " # end_alias # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Solver Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc KOP(1) = LIQUID V:IMPLICIT LAGRANGE v-- TURBULENCE:k-epsilon T:EXPIMP(0.5) # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Saving Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc restart = (00) restart_step_size = (100,%RESTART_sequence%) SAVE_format(1) = 'ENSIGHT6 BINARY N-T-' SAVE_choose_meth = 'TIME' SAVE_first(1) = 0.0 SAVE_interval(1) = 0.1 SAVE_file = 'Karre' SAVE_path = 'results___Hmin=&H_min&___Speed=&SpeedOfBox&___WaterLevel=&InitialWaterLevelAboveGround&' SAVE_ITEM = ( %SAVE_vector%,[Y%ind_v(1)%], [Y%ind_v(2)%], [Y%ind_v(3)%], "velocity") SAVE_ITEM = ( %SAVE_vector%,[Y%ind_n(1)%], [Y%ind_n(2)%], [Y%ind_n(3)%], "normal") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_p%], "pressure") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_p_dyn%], "pressure_dyn") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_r%], "density") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_h%], "H") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_kob%], "KOB") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_BC%], "BC") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_proc%], "MPI_process") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_Organize%], "ORGANIZE") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_act%], "ACTIVE") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_TearOff%], "ind_TearOff") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_dtb%/Y%ind_h%], "DTB") SAVE_ITEM = ( %SAVE_scalar%,[Y%ind_vol%], "ind_vol") INTEGRATION = ( %PUBLICVALUE%, [real(%CLOCK_STATISTICS_FLIQUID%,1)], %INTEGRATION_Header%, "FLIQUID: sum( clock time all MPI processes ) " ) # sum( clock time of all MPI proicesses ) INTEGRATION = ( %PUBLICVALUE%, [real(%CLOCK_STATISTICS_FLIQUID%,2)], %INTEGRATION_Header%, "FLIQUID: nbMPIprocesses * max( clock time of all MPI proicesses )" ) # nbMPIprocesses * max( clock time of all MPI proicesses ) INTEGRATION = ( %PUBLICVALUE%, [real(%CLOCK_STATISTICS_FLIQUID%,3)], %INTEGRATION_Header%, "FLIQUID: nbMPIprocesses * min( clock time of all MPI proicesses )" ) # nbMPIprocesses * max( clock time of all MPI proicesses ) INTEGRATION = ( %PUBLICVALUE%, [real(%CLOCK_STATISTICS_ORGANIZE%,1)], %INTEGRATION_Header%, "ORGANIZE: sum( clock time all MPI processes ) " ) # sum( clock time of all MPI proicesses ) INTEGRATION = ( %PUBLICVALUE%, [real(%CLOCK_STATISTICS_ORGANIZE%,2)], %INTEGRATION_Header%, "ORGANIZE: nbMPIprocesses * max( clock time of all MPI proicesses ) " ) # nbMPIprocesses * max( clock time of all MPI proicesses ) INTEGRATION = ( %PUBLICVALUE%, [real(%CLOCK_STATISTICS_ORGANIZE%,3)], %INTEGRATION_Header%, "ORGANIZE: nbMPIprocesses * min( clock time of all MPI proicesses ) " ) # nbMPIprocesses * max( clock time of all MPI proicesses ) INTEGRATION = ( %PUBLICVALUE%, [real(%FLIQUID_NbParticles%)], %INTEGRATION_Header%, "FLIQUID: number of relevant particles " ) # number of particles for relevant for the MESHFREE numerics INTEGRATION = ( %PUBLICVALUE%, [real(%ORGANIZE_NbParticles%)], %INTEGRATION_Header%, "ORGANIZE: number of relevant particles ") # number of particles relevant for MESHFREE organization begin_timestepfile{ "PressureStatic" } INTEGRATION = ( %PUBLICVALUE%, [real(%RealTimeSimulation%)]) # this puts the time into the first column INTEGRATION = ( %POINT_APPROXIMATE%, [Y%ind_p_dyn%+Y%ind_p%], $PP_MonitorPointsStatic$ ) # this subsequently puts the values of all node points in the subsequent columns end_timestepfile begin_timestepfile{ "PressureDynamic" } INTEGRATION = ( %PUBLICVALUE%, [real(%RealTimeSimulation%)]) # this puts the time into the first column INTEGRATION = ( %POINT_APPROXIMATE%, [Y%ind_p_dyn%+Y%ind_p%], $PP_MonitorPointsDynamic$ ) # this subsequently puts the values of all node points in the subsequent columns end_timestepfile # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Time Step Control Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc DELT_dt_variable = 1 DELT_dt_start = 0.0001 DELT_dt = 0.25 Tstart = 0.0 Tend = 2.0 # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Smoothing Length Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc USER_h_funct = 'DSCR' SMOOTH_LENGTH($H_box$) = ( %H_spherical%, [equn($ScalingOfH$)*&H_min&], &L_0&, &dH_dr&, [equn($ScalingOfH$)*&H_max&] ) # refine smoothing length around the box # USER_h_max = &H_max& # USER_h_min = &H_min& begin_equation{$ScalingOfH$} 1.0/( &H_RelativeChangePerTimeCycle&^(max( real(%NumberTimeStepsExecuted%)-&N_TimeStepsAfterWhichRefinementStarts& , 0 ) ) ) # refine steadily the smoothing length after a certain number of time cacles end_equation # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Boundary Elements Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc begin_boundary_elements{} include{pool.FDNEUT}, scale{&ScalingOfPool&} # surface triangulation of water channel include{box.FDNEUT}, scale{&ScalingOfBox&}, offset{&InitialOffsetOfBox&} # surface triangulation of box include{MonitorPointsStatic.inp} # points where pressure is to be evaluated: sidewise on the fronside of the box include{MonitorPointsDynamic.inp} # points where pressure is to be evaluated: along channel BND_plane BC$BC_free$ ACTIVE$init_never$ MAT$Mat1$ LAYER0 CHAMBER1 0 0 &InitialWaterLevelAboveGround& 0 0 -1 end_boundary_elements # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Physical Properties Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc density($Mat1$) = 1000 #[1000 - 1000*Y%ind_time%] cv($Mat1$) = 1200 lambda($Mat1$) = 5000 eta($Mat1$) = 0.001 mue($Mat1$) = 0 sigma($Mat1$) = 0.0 heatsource($Mat1$) = 0 gravity($Mat1$) = (0, 0, -10) # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Boundary Condition Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # temperature BC_T(0) = (%BND_NEUMANN%, 0, 0) BC_T($BC_free$) = (%BND_NEUMANN%, 0, 0) BC_T($BC_pool$) = (%BND_DIRICH%, 0, 0) BC_T($BC_box$) = (%BND_DIRICH%, 1, 0) # velocity BC_v(0) = (%BND_free%,0,0,0,0.3) BC_v($BC_free$) = (%BND_free%,0,0,0,0.3) BC_v($BC_pool$) = (%BND_slip%,0,0.3) BC_v($BC_box$) = (%BND_slip%,0,0.3) # hydrostatic/correction pressure BC_p(0) = (%BND_free_implicit%) BC_p($BC_free$) = (%BND_free_implicit%) BC_p($BC_pool$) = (%BND_wall%,1.0) BC_p($BC_box$) = (%BND_wall%,1.0) # dynamic pressure BCON($BC_pool$,%ind_p_dyn%) = (%BND_slip%) BCON($BC_box$,%ind_p_dyn%) = (%BND_slip%) # turbulent k BC_k(0) = (%BND_free%) BC_k($BC_free$) = (%BND_free%) BC_k($BC_pool$) = (%BND_wall%) BC_k($BC_box$) = (%BND_wall%) # turbulent epsilon BC_eps(0) = (%BND_free%) BC_eps($BC_free$) = (%BND_free%) BC_eps($BC_pool$) = (%BND_wall%) BC_eps($BC_box$) = (%BND_wall%) # keep velocity components bounded CODI_min_max($Mat1$,%ind_v(1)%) = ([-3.0*&SpeedOfBox&],[3.0*&SpeedOfBox&]) CODI_min_max($Mat1$,%ind_v(2)%) = ([-3.0*&SpeedOfBox&],[3.0*&SpeedOfBox&]) CODI_min_max($Mat1$,%ind_v(3)%) = ([-3.0*&SpeedOfBox&],[3.0*&SpeedOfBox&]) # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Initial Condition Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc INITDATA($Mat1$,%ind_T%) = 0 INITDATA($Mat1$,%ind_v(1)%) = 0 INITDATA($Mat1$,%ind_v(2)%) = 0 INITDATA($Mat1$,%ind_v(3)%) = 0 INITDATA($Mat1$,%ind_p%) = 0 # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Move the geoemtry # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc MOVE($no_move$) = ( %MOVE_velocity%, 0, 0, 0 ) MOVE($MOVE_box$) = ( %MOVE_velocity%, curve{$CRV_move$}{0}, 0, 0 ) begin_curve{$CRV_move$} 0 0 1 &SpeedOfBox& 1000 &SpeedOfBox& end_curve # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc # c Active Section # cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ACTIVE($init_always$) = ( %ACTIVE_init%, %ACTIVE_always% ) ACTIVE($init_never$) = ( %ACTIVE_init% )