From 5c3b79a537d8db3e5b530cdf49bb0689f8781e09 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 13 Nov 2025 09:23:53 -0500 Subject: [PATCH 01/23] Adding changes from original two way coupling branch manually --- docs/documentation/case.md | 331 ++++++++++++++++---------------- src/common/m_derived_types.fpp | 1 + src/simulation/m_ibm.fpp | 72 +++++++ toolchain/bootstrap/modules.sh | 3 +- toolchain/mfc/run/case_dicts.py | 2 +- toolchain/util.sh | 5 +- 6 files changed, 249 insertions(+), 165 deletions(-) diff --git a/docs/documentation/case.md b/docs/documentation/case.md index 9e0536f913..c5ac020f17 100644 --- a/docs/documentation/case.md +++ b/docs/documentation/case.md @@ -291,22 +291,25 @@ This is enabled by adding `'elliptic_smoothing': "T",` and `'elliptic_smoothing_ | Parameter | Type | Description | | ---: | :----: | :--- | -| `geometry` | Integer | Geometry configuration of the patch.| -| `x[y,z]_centroid` | Real | Centroid of the applied geometry in the [x,y,z]-direction. | -| `length_x[y,z]` | Real | Length, if applicable, in the [x,y,z]-direction. | -| `radius` | Real | Radius, if applicable, of the applied geometry. | -| `theta` | Real | Angle of attach applied to airfoil IB patches | -| `c` | Real | NACA airfoil parameters (see below) | -| `t` | Real | NACA airfoil parameters (see below) | -| `m` | Real | NACA airfoil parameters (see below) | -| `p` | Real | NACA airfoil parameters (see below) | -| `slip` | Logical | Apply a slip boundary | -| `model_filepath` | String | Path to an STL or OBJ file (not all OBJs are supported). | -| `model_scale(i)` | Real | Model's (applied) scaling factor for component $i$. | -| `model_rotate(i)` | Real | Model's (applied) angle of rotation about axis $i$. | -| `model_translate(i)` | Real | Model's $i$-th component of (applied) translation. | -| `model_spc` | Integer | Number of samples per cell when discretizing the model into the grid. | -| `model_threshold` | Real | Ray fraction inside the model patch above which the fraction is set to one.| +| `geometry` | Integer | Geometry configuration of the patch.| +| `x[y,z]_centroid` | Real | Centroid of the applied geometry in the [x,y,z]-direction. | +| `length_x[y,z]` | Real | Length, if applicable, in the [x,y,z]-direction. | +| `radius` | Real | Radius, if applicable, of the applied geometry. | +| `theta` | Real | Angle of attach applied to airfoil IB patches | +| `c` | Real | NACA airfoil parameters (see below) | +| `t` | Real | NACA airfoil parameters (see below) | +| `m` | Real | NACA airfoil parameters (see below) | +| `p` | Real | NACA airfoil parameters (see below) | +| `slip` | Logical | Apply a slip boundary | +| `model_filepath` | String | Path to an STL or OBJ file (not all OBJs are supported). | +| `model_scale(i)` | Real | Model's (applied) scaling factor for component $i$. | +| `model_rotate(i)` | Real | Model's (applied) angle of rotation about axis $i$. | +| `model_translate(i)` | Real | Model's $i$-th component of (applied) translation. | +| `model_spc` | Integer | Number of samples per cell when discretizing the model into the grid. | +| `model_threshold` | Real | Ray fraction inside the model patch above which the fraction is set to one.| +| `moving_ibm` | Integer | Sets the method used for IB movement. | +| `vel(i)` | Real | Initial velocity of the moving IB in the i-th direction. | +| `angular_vel(i)` | Real | Initial angular velcoity of the moving IB in the i-th direction. | These parameters should be prepended with `patch_ib(j)%` where $j$ is the patch index. @@ -331,6 +334,12 @@ Additional details on this specification can be found in [The Naca Airfoil Serie - Please see [Patch Parameters](#3-patches) for the descriptions of `model_filepath`, `model_scale`, `model_rotate`, `model_translate`, `model_spc`, and `model_threshold`. +- `moving_ibm` sets the method by which movement will be applied to the immersed boundary. Using 0 will result in no movement. Using 1 will result 1-way coupling where the boundary moves at a constant rate and applied forces to the fluid based upon it's own motion. In 1-way coupling, the fluid does not apply forces back onto the IB. + +- `vel(i)` is the initial linear velocity of the IB in the x, y, z direction for i=1, 2, 3. When `moving_ibm` equals 1, this velcoity is constant. + +- `angular_vel(i)` is the initial angular velocity of the IB about the x, y, z axes for i=1, 2, 3 in radians per second. When `moving_ibm` equals 1, this angular velcoity is constant. + ### 5. Fluid Material’s | Parameter | Type | Description | @@ -366,62 +375,62 @@ Details of implementation of viscosity in MFC can be found in [Coralic (2015)](r - `fluid_pp(i)%%G` is required for `hypoelasticity`. ### 6. Simulation Algorithm - -| Parameter | Type | Description | -| ---: | :----: | :--- | -| `bc_[x,y,z]%%beg[end]` | Integer | Beginning [ending] boundary condition in the $[x,y,z]$-direction (negative integer, see table [Boundary Conditions](#boundary-conditions)) | -| `bc_[x,y,z]%%vb[1,2,3]`‡| Real | Velocity in the (x,1), (y, 2), (z,3) direction applied to `bc_[x,y,z]%%beg` | -| `bc_[x,y,z]%%ve[1,2,3]`‡| Real | Velocity in the (x,1), (y, 2), (z,3) direction applied to `bc_[x,y,z]%%end` | -| `model_eqns` | Integer | Multicomponent model: [1] $\Gamma/\Pi_\infty$; [2] 5-equation; [3] 6-equation; [4] 4-equation | -| `alt_soundspeed` * | Logical | Alternate sound speed and $K \nabla \cdot u$ for 5-equation model | -| `adv_n` | Logical | Solving directly for the number density (in the method of classes) and compute void fraction from the number density | -| `mpp_lim` | Logical | Mixture physical parameters limits | -| `mixture_err` | Logical | Mixture properties correction | -| `time_stepper` | Integer | Runge--Kutta order [1-3] | -| `adap_dt` | Logical | Strang splitting scheme with adaptive time stepping | -| `recon_type` | Integer | Reconstruction Type: [1] WENO; [2] MUSCL | -| `adap_dt_tol` | Real | Tolerance for adaptive time stepping in Strang splitting scheme| -| `adap_dt_max_iters` | Integer | Max iteration for adaptive time stepping in Strang splitting scheme | -| `weno_order` | Integer | WENO order [1,3,5] | -| `weno_eps` | Real | WENO perturbation (avoid division by zero) | -| `mapped_weno` | Logical | WENO-M (WENO with mapping of nonlinear weights) | -| `wenoz` | Logical | WENO-Z | -| `wenoz_q` | Real | WENO-Z power parameter q (only for WENO7) | -| `teno` | Logical | TENO (Targeted ENO) | -| `teno_CT` | Real | TENO threshold for smoothness detection | -| `null_weights` | Logical | Null WENO weights at boundaries | -| `mp_weno` | Logical | Monotonicity preserving WENO | -| `muscl_order` | Integer | MUSCL order [1,2] | -| `muscl_lim` | Integer | MUSCL Slope Limiter: [1] minmod; [2] monotonized central; [3] Van Albada; [4] Van Leer; [5] SUPERBEE | -| `int_comp` | Logical | THINC Interface Compression | -| `ic_eps` | Real | Interface compression threshold (default: 1e-4) | -| `ic_beta` | Real | Interface compression sharpness parameter (default: 1.6) | -| `riemann_solver` | Integer | Riemann solver algorithm: [1] HLL*; [2] HLLC; [3] Exact*; [4] HLLD (only for MHD) | -| `low_Mach` | Integer | Low Mach number correction for HLLC Riemann solver: [0] None; [1] Pressure (Chen et al. 2022); [2] Velocity (Thornber et al. 2008) | -| `avg_state` | Integer | Averaged state evaluation method: [1] Roe average*; [2] Arithmetic mean | -| `wave_speeds` | Integer | Wave-speed estimation: [1] Direct (Batten et al. 1997); [2] Pressure-velocity* (Toro 1999) | -| `weno_Re_flux` | Logical | Compute velocity gradient using scalar divergence theorem | -| `weno_avg` | Logical | Arithmetic mean of left and right, WENO-reconstructed, cell-boundary values | -| `dt` | Real | Time step size | -| `t_step_start` | Integer | Simulation starting time step | -| `t_step_stop` | Integer | Simulation stopping time step | -| `t_step_save` | Integer | Frequency to output data | -| `t_step_print` | Integer | Frequency to print the current step number to standard output (default 1) | -| `cfl_adap_dt` | Logical | CFL based adaptive time-stepping | -| `cfl_const_dt` | Logical | CFL based non-adaptive time-stepping | -| `cfl_target` | Real | Specified CFL value | -| `n_start` | Integer | Save file from which to start simulation | -| `t_save` | Real | Time duration between data output | -| `t_stop` | Real | Simulation stop time | -| `surface_tension` | Logical | Activate surface tension | -| `viscous` | Logical | Activate viscosity | -| `hypoelasticity` | Logical | Activate hypoelasticity* | -| `igr` | Logical | Enable solution via information geometric regularization (IGR) [Cao (2024)](references.md) | -| `igr_order` | Integer | Order of reconstruction for IGR [3,5] | -| `alf_factor` | Real | Alpha factor for IGR entropic pressure (default 10) | -| `igr_pres_lim` | Logical | Limit IGR pressure to avoid negative values (default F) | -| `igr_iter_solver` | Integer | Solution method for IGR elliptic solve [1] Jacobi [2] Gauss-Seidel | -| `num_igr_iters` | Integer | Number of iterations for for the IGR elliptic solve (default 2) | +. +| Parameter . | Type | Description | +| ---: . | :----: | :--- | +| `bc_[x,y,z]%%beg[end]` . | Integer | Beginning [ending] boundary condition in the $[x,y,z]$-direction (negative integer, see table [Boundary Conditions](#boundary-conditions)) | +| `bc_[x,y,z]%%vb[1,2,3]`‡. | Real | Velocity in the (x,1), (y, 2), (z,3) direction applied to `bc_[x,y,z]%%beg` | +| `bc_[x,y,z]%%ve[1,2,3]`‡. | Real | Velocity in the (x,1), (y, 2), (z,3) direction applied to `bc_[x,y,z]%%end` | +| `model_eqns` | Integer | Multicomponent model: [1] $\Gamma/\Pi_\infty$; [2] 5-equation; [3] 6-equation; [4] 4-equation | +| `alt_soundspeed` * | Logical | Alternate sound speed and $K \nabla \cdot u$ for 5-equation model | +| `adv_n` | Logical | Solving directly for the number density (in the method of classes) and compute void fraction from the number density | +| `mpp_lim` | Logical | Mixture physical parameters limits | +| `mixture_err` | Logical | Mixture properties correction | +| `time_stepper` | Integer | Runge--Kutta order [1-3] | +| `adap_dt` | Logical | Strang splitting scheme with adaptive time stepping | +| `recon_type` | Integer | Reconstruction Type: [1] WENO; [2] MUSCL | +| `adap_dt_tol` | Real | Tolerance for adaptive time stepping in Strang splitting scheme| +| `adap_dt_max_iters` | Integer | Max iteration for adaptive time stepping in Strang splitting scheme | +| `weno_order` | Integer | WENO order [1,3,5] | +| `weno_eps` | Real | WENO perturbation (avoid division by zero) | +| `mapped_weno` | Logical | WENO-M (WENO with mapping of nonlinear weights) | +| `wenoz` | Logical | WENO-Z | +| `wenoz_q` | Real | WENO-Z power parameter q (only for WENO7) | +| `teno` | Logical | TENO (Targeted ENO) | +| `teno_CT` | Real | TENO threshold for smoothness detection | +| `null_weights` | Logical | Null WENO weights at boundaries | +| `mp_weno` | Logical | Monotonicity preserving WENO | +| `muscl_order` | Integer | MUSCL order [1,2] | +| `muscl_lim` | Integer | MUSCL Slope Limiter: [1] minmod; [2] monotonized central; [3] Van Albada; [4] Van Leer; [5] SUPERBEE | +| `int_comp` | Logical | THINC Interface Compression | +| `ic_eps` | Real | Interface compression threshold (default: 1e-4) | +| `ic_beta` | Real | Interface compression sharpness parameter (default: 1.6) | +| `riemann_solver` | Integer | Riemann solver algorithm: [1] HLL*; [2] HLLC; [3] Exact*; [4] HLLD (only for MHD) | +| `low_Mach` | Integer | Low Mach number correction for HLLC Riemann solver: [0] None; [1] Pressure (Chen et al. 2022); [2] Velocity (Thornber et al. 2008) | +| `avg_state` | Integer | Averaged state evaluation method: [1] Roe average*; [2] Arithmetic mean | +| `wave_speeds` | Integer | Wave-speed estimation: [1] Direct (Batten et al. 1997); [2] Pressure-velocity* (Toro 1999) | +| `weno_Re_flux` | Logical | Compute velocity gradient using scalar divergence theorem | +| `weno_avg` | Logical | Arithmetic mean of left and right, WENO-reconstructed, cell-boundary values | +| `dt` | Real | Time step size | +| `t_step_start` | Integer | Simulation starting time step | +| `t_step_stop` | Integer | Simulation stopping time step | +| `t_step_save` | Integer | Frequency to output data | +| `t_step_print` | Integer | Frequency to print the current step number to standard output (default 1) | +| `cfl_adap_dt` | Logical | CFL based adaptive time-stepping | +| `cfl_const_dt` | Logical | CFL based non-adaptive time-stepping | +| `cfl_target` | Real | Specified CFL value | +| `n_start` | Integer | Save file from which to start simulation | +| `t_save` | Real | Time duration between data output | +| `t_stop` | Real | Simulation stop time | +| `surface_tension` | Logical | Activate surface tension | +| `viscous` | Logical | Activate viscosity | +| `hypoelasticity` | Logical | Activate hypoelasticity* | +| `igr` | Logical | Enable solution via information geometric regularization (IGR) [Cao (2024)](references.md) | +| `igr_order` | Integer | Order of reconstruction for IGR [3,5] | +| `alf_factor` | Real | Alpha factor for IGR entropic pressure (default 10) | +| `igr_pres_lim` | Logical | Limit IGR pressure to avoid negative values (default F) | +| `igr_iter_solver` | Integer | Solution method for IGR elliptic solve [1] Jacobi [2] Gauss-Seidel | +| `num_igr_iters` | Integer | Number of iterations for for the IGR elliptic solve (default 2) | | `num_igr_warm_start_iters` | Integer | Number of iterations for the IGR elliptic solve at the first time step (default 50) | - \* Options that work only with `model_eqns = 2`. @@ -566,57 +575,57 @@ To restart the simulation from $k$-th time step, see [Restarting Cases](running. ### 7. Formatted Output -| Parameter | Type | Description | -| ---: | :----: | :--- | -| `format` | Integer | Output format. [1]: Silo-HDF5; [2] Binary | -| `precision` | Integer | [1] Single; [2] Double | -| `parallel_io` | Logical | Parallel I/O | -| `file_per_process` | Logical | Whether or not to write one IO file per process | -| `cons_vars_wrt` | Logical | Write conservative variables | -| `prim_vars_wrt` | Logical | Write primitive variables | -| `alpha_rho_wrt(i)` | Logical | Add the partial density of the fluid $i$ to the database \| -| `rho_wrt` | Logical | Add the mixture density to the database | -| `mom_wrt(i)` | Logical | Add the $i$-direction momentum to the database | -| `vel_wrt(i)` | Logical | Add the $i$-direction velocity to the database | -| `E_wrt` | Logical | Add the total energy to the database | -| `pres_wrt` | Logical | Add the pressure to the database | -| `alpha_wrt(i)` | Logical | Add the volume fraction of fluid $i$ to the database | -| `gamma_wrt` | Logical | Add the specific heat ratio function to the database | -| `heat_ratio_wrt` | Logical | Add the specific heat ratio to the database | -| `pi_inf_wrt` | Logical | Add the liquid stiffness function to the database | -| `pres_inf_wrt` | Logical | Add the liquid stiffness to the formatted database | -| `c_wrt` | Logical | Add the sound speed to the database | -| `omega_wrt(i)` | Logical | Add the $i$-direction vorticity to the database | -| `schlieren_wrt` | Logical | Add the numerical schlieren to the database| -| `qm_wrt` | Logical | Add the Q-criterion to the database| -| `liutex_wrt` | Logical | Add the Liutex to the database| -| `tau_wrt` | Logical | Add the elastic stress components to the database| -| `fd_order` | Integer | Order of finite differences for computing the vorticity and the numerical Schlieren function [1,2,4] | -| `schlieren_alpha(i)` | Real | Intensity of the numerical Schlieren computed via `alpha(i)` | -| `probe_wrt` | Logical | Write the flow chosen probes data files for each time step | -| `num_probes` | Integer | Number of probes | -| `probe(i)%[x,y,z]` | Real | Coordinates of probe $i$ | +| Parameter | Type | Description | +| ---: | :----: | :--- | +| `format` | Integer | Output format. [1]: Silo-HDF5; [2] Binary | +| `precision` | Integer | [1] Single; [2] Double | +| `parallel_io` | Logical | Parallel I/O | +| `file_per_process` | Logical | Whether or not to write one IO file per process | +| `cons_vars_wrt` | Logical | Write conservative variables | +| `prim_vars_wrt` | Logical | Write primitive variables | +| `alpha_rho_wrt(i)` | Logical | Add the partial density of the fluid $i$ to the database \| +| `rho_wrt` | Logical | Add the mixture density to the database | +| `mom_wrt(i)` | Logical | Add the $i$-direction momentum to the database | +| `vel_wrt(i)` | Logical | Add the $i$-direction velocity to the database | +| `E_wrt` | Logical | Add the total energy to the database | +| `pres_wrt` | Logical | Add the pressure to the database | +| `alpha_wrt(i)` | Logical | Add the volume fraction of fluid $i$ to the database | +| `gamma_wrt` | Logical | Add the specific heat ratio function to the database | +| `heat_ratio_wrt` | Logical | Add the specific heat ratio to the database | +| `pi_inf_wrt` | Logical | Add the liquid stiffness function to the database | +| `pres_inf_wrt` | Logical | Add the liquid stiffness to the formatted database | +| `c_wrt` | Logical | Add the sound speed to the database | +| `omega_wrt(i)` | Logical | Add the $i$-direction vorticity to the database | +| `schlieren_wrt` | Logical | Add the numerical schlieren to the database| +| `qm_wrt` | Logical | Add the Q-criterion to the database| +| `liutex_wrt` | Logical | Add the Liutex to the database| +| `tau_wrt` | Logical | Add the elastic stress components to the database| +| `fd_order` | Integer | Order of finite differences for computing the vorticity and the numerical Schlieren function [1,2,4] | +| `schlieren_alpha(i)` | Real | Intensity of the numerical Schlieren computed via `alpha(i)` | +| `probe_wrt` | Logical | Write the flow chosen probes data files for each time step | +| `num_probes` | Integer | Number of probes | +| `probe(i)%[x,y,z]` | Real | Coordinates of probe $i$ | | `output_partial_domain` | Logical | Output part of the domain | -| `[x,y,z]_output%beg` | Real | Beginning of the output domain in the [x,y,z]-direction | -| `[x,y,z]_output%end` | Real | End of the output domain in the [x,y,z]-direction | -| `lag_txt_wrt` | Logical | Write Lagrangian bubble data to `.dat` files | -| `lag_header` | Logical | Write header to Lagrangian bubble `.dat` files | -| `lag_db_wrt` | Logical | Write Lagrangian bubble data to silo/hdf5 database files | -| `lag_id_wrt` | Logical | Add the global bubble idea to the database file | -| `lag_pos_wrt` | Logical | Add the bubble position to the database file | -| `lag_pos_prev_wrt` | Logical | Add the previous bubble position to the database file | -| `lag_vel_wrt` | Logical | Add the bubble translational velocity to the database file | -| `lag_rad_wrt` | Logical | Add the bubble radius to the database file | -| `lag_rvel_wrt` | Logical | Add the bubble radial velocity to the database file | -| `lag_r0_wrt` | Logical | Add the bubble initial radius to the database file | -| `lag_rmax_wrt` | Logical | Add the bubble maximum radius to the database file | -| `lag_rmin_wrt` | Logical | Add the bubble minimum radius to the database file | -| `lag_dphidt_wrt` | Logical | Add the bubble subgrid velocity potential to the database file | -| `lag_pres_wrt` | Logical | Add the bubble pressure to the database file | -| `lag_mv_wrt` | Logical | Add the bubble vapor mass to the database file | -| `lag_mg_wrt` | Logical | Add the bubble gas mass to the database file | -| `lag_betaT_wrt` | Logical | Add the bubble heat flux model coefficient to the database file | -| `lag_betaC_wrt` | Logical | Add the bubble mass flux model coefficient to the database file | +| `[x,y,z]_output%beg` | Real | Beginning of the output domain in the [x,y,z]-direction | +| `[x,y,z]_output%end` | Real | End of the output domain in the [x,y,z]-direction | +| `lag_txt_wrt` | Logical | Write Lagrangian bubble data to `.dat` files | +| `lag_header` | Logical | Write header to Lagrangian bubble `.dat` files | +| `lag_db_wrt` | Logical | Write Lagrangian bubble data to silo/hdf5 database files | +| `lag_id_wrt` | Logical | Add the global bubble idea to the database file | +| `lag_pos_wrt` | Logical | Add the bubble position to the database file | +| `lag_pos_prev_wrt` | Logical | Add the previous bubble position to the database file | +| `lag_vel_wrt` | Logical | Add the bubble translational velocity to the database file | +| `lag_rad_wrt` | Logical | Add the bubble radius to the database file | +| `lag_rvel_wrt` | Logical | Add the bubble radial velocity to the database file | +| `lag_r0_wrt` | Logical | Add the bubble initial radius to the database file | +| `lag_rmax_wrt` | Logical | Add the bubble maximum radius to the database file | +| `lag_rmin_wrt` | Logical | Add the bubble minimum radius to the database file | +| `lag_dphidt_wrt` | Logical | Add the bubble subgrid velocity potential to the database file | +| `lag_pres_wrt` | Logical | Add the bubble pressure to the database file | +| `lag_mv_wrt` | Logical | Add the bubble vapor mass to the database file | +| `lag_mg_wrt` | Logical | Add the bubble gas mass to the database file | +| `lag_betaT_wrt` | Logical | Add the bubble heat flux model coefficient to the database file | +| `lag_betaC_wrt` | Logical | Add the bubble mass flux model coefficient to the database file | The table lists formatted database output parameters. The parameters define variables that are outputted from simulation and file types and formats of data as well as options for post-processing. @@ -768,23 +777,23 @@ Implementation of the parameters into the model follow [Ando (2010)](references. #### 9.1 Ensemble-Averaged Bubble Model -| Parameter | Type | Description | -| ---: | :----: | :--- | -| `bubbles_euler`| Logical | Ensemble-averaged bubble modeling | +| Parameter . | Type | Description | +| ---: . | :----: | :--- | +| `bubbles_euler`. | Logical | Ensemble-averaged bubble modeling | | `polytropic` | Logical | Polytropic gas compression | | `thermal` | Integer | Thermal model: [1] Adiabatic; [2] Isothermal; [3] Transfer | -| `R0ref` | Real | Reference bubble radius | -| `polydisperse` | Logical | Polydispersity in equilibrium bubble radius R0 | -| `nb` | Integer | Number of bins: [1] Monodisperse; [$>1$] Polydisperse | -| `poly_sigma` | Real | Standard deviation for probability density function of polydisperse bubble populations | -| `Ca` | Real | Cavitation number | -| `Web` | Real | Weber number | -| `Re_inv` | Real | Inverse Reynolds number | -| `qbmm` | Logical | Quadrature by method of moments | -| `dist_type` | Integer | Joint probability density function for bubble radius and velocity (only for ``qbmm = 'T'``) | -| `sigR` | Real | Standard deviation for the probability density function of bubble radius (only for ``qbmm = 'T'``) (EE)| -| `sigV` | Real | Standard deviation for the probability density function of bubble velocity (only for ``qbmm = 'T'``) (EE)| -| `rhoRV` | Real | Correlation coefficient for the joint probability density function of bubble radius and velocity (only for ``qbmm = 'T'``) | +| `R0ref` | Real | Reference bubble radius | +| `polydisperse` | Logical | Polydispersity in equilibrium bubble radius R0 | +| `nb` | Integer | Number of bins: [1] Monodisperse; [$>1$] Polydisperse | +| `poly_sigma` | Real | Standard deviation for probability density function of polydisperse bubble populations | +| `Ca` | Real | Cavitation number | +| `Web` | Real | Weber number | +| `Re_inv` | Real | Inverse Reynolds number | +| `qbmm` | Logical | Quadrature by method of moments | +| `dist_type` | Integer | Joint probability density function for bubble radius and velocity (only for ``qbmm = 'T'``) | +| `sigR` | Real | Standard deviation for the probability density function of bubble radius (only for ``qbmm = 'T'``) (EE)| +| `sigV` | Real | Standard deviation for the probability density function of bubble velocity (only for ``qbmm = 'T'``) (EE)| +| `rhoRV` | Real | Correlation coefficient for the joint probability density function of bubble radius and velocity (only for ``qbmm = 'T'``) | This table lists the ensemble-averaged bubble model parameters. @@ -890,7 +899,7 @@ $$ u = \mbox{patch\_icpp(1)\%vel(1)} * \tanh( y_{cc} * \mbox{mixlayer\_vel\_coef | `relax` | Logical | Activates Phase Change model | | `relax_model` | Integer | Phase change model: [5] pT-equilibrium; [6] pTg-equilibrium | | `palpha_eps` | Real | tolerance of the Newton Solver to activate pT-equilibrium | -| `ptgalpha_eps` | Real | tolerance of the Newton Solver to activate pTg-equilibrium | +| `ptgalpha_eps` | Real | tolerance of the Newton Solver to activate pTg-equilibrium | - `relax` Activates the Phase Change model. @@ -1026,29 +1035,29 @@ This boundary condition can be used for subsonic inflow (`bc_[x,y,z]%[beg,end]` ### Patch types -| # | Name | Dim. | Smooth | Description | -| ---: | :----: | :---: | :---: | :--- | -| 1 | Line segment | 1 | N | Requires `x_centroid` and `length_x`. | -| 2 | Circle | 2 | Y | Requires `[x,y]_centroid` and `radius`. | -| 3 | Rectangle | 2 | N | Coordinate-aligned. Requires `[x,y]_centroid` and `length_[x,y]`. | -| 4 | Sweep line | 2 | Y | Not coordinate aligned. Requires `[x,y]_centroid` and `normal(i)`. | -| 5 | Ellipse | 2 | Y | Requires `[x,y]_centroid` and `radii(i)`. | -| 6 | N/A | N/A | N/A | No longer exists. Empty. | -| 7 | N/A | N/A | N/A | No longer exists. Empty. | -| 8 | Sphere | 3 | Y | Requires `[x,y,z]_centroid` and `radius` | -| 9 | Cuboid | 3 | N | Coordinate-aligned. Requires `[x,y,z]_centroid` and `length_[x,y,z]`. | -| 10 | Cylinder | 3 | Y | Requires `[x,y,z]_centroid`, `radius`, and `length_[x,y,z]`. | -| 11 | Sweep plane | 3 | Y | Not coordinate-aligned. Requires `x[y,z]_centroid` and `normal(i)`. | -| 12 | Ellipsoid | 3 | Y | Requires `[x,y,z]_centroid` and `radii(i)`. | -| 13 | N/A | N/A | N/A | No longer exists. Empty. | -| 14 | Spherical Harmonic | 3 | N | Requires `[x,y,z]_centroid`, `radius`, `epsilon`, `beta` | -| 15 | N/A | N/A | N/A | No longer exists. Empty. | -| 16 | 1D bubble pulse | 1 | N | Requires `x_centroid`, `length_x` | -| 17 | Spiral | 2 | N | Requires `[x,y]_centroid` | -| 18 | 2D Varcircle | 2 | Y | Requires `[x,y]_centroid`, `radius`, and `thickness` | -| 19 | 3D Varcircle | 3 | Y | Requires `[x,y,z]_centroid`, `length_z`, `radius`, and `thickness` | -| 20 | 2D Taylor-Green Vortex | 2 | N | Requires `[x,y]_centroid`, `length_x`, `length_y`, `vel(1)`, and `vel(2)` | -| 21 | Model | 2 & 3 | Y | Imports a Model (STL/OBJ). Requires `model%%filepath`. | +| # | Name | Dim. | Smooth | Description | +| ---: | :----: | :---: | :---: | :--- | +| 1 | Line segment | 1 | N | Requires `x_centroid` and `length_x`. | +| 2 | Circle | 2 | Y | Requires `[x,y]_centroid` and `radius`. | +| 3 | Rectangle | 2 | N | Coordinate-aligned. Requires `[x,y]_centroid` and `length_[x,y]`. | +| 4 | Sweep line | 2 | Y | Not coordinate aligned. Requires `[x,y]_centroid` and `normal(i)`. | +| 5 | Ellipse | 2 | Y | Requires `[x,y]_centroid` and `radii(i)`. | +| 6 | N/A | N/A | N/A | No longer exists. Empty. | +| 7 | N/A | N/A | N/A | No longer exists. Empty. | +| 8 | Sphere | 3 | Y | Requires `[x,y,z]_centroid` and `radius` | +| 9 | Cuboid | 3 | N | Coordinate-aligned. Requires `[x,y,z]_centroid` and `length_[x,y,z]`. | +| 10 | Cylinder | 3 | Y | Requires `[x,y,z]_centroid`, `radius`, and `length_[x,y,z]`. | +| 11 | Sweep plane | 3 | Y | Not coordinate-aligned. Requires `x[y,z]_centroid` and `normal(i)`. | +| 12 | Ellipsoid | 3 | Y | Requires `[x,y,z]_centroid` and `radii(i)`. | +| 13 | N/A | N/A | N/A | No longer exists. Empty. | +| 14 | Spherical Harmonic | 3 | N | Requires `[x,y,z]_centroid`, `radius`, `epsilon`, `beta` | +| 15 | N/A | N/A | N/A | No longer exists. Empty. | +| 16 | 1D bubble pulse | 1 | N | Requires `x_centroid`, `length_x` | +| 17 | Spiral | 2 | N | Requires `[x,y]_centroid` | +| 18 | 2D Varcircle | 2 | Y | Requires `[x,y]_centroid`, `radius`, and `thickness` | +| 19 | 3D Varcircle | 3 | Y | Requires `[x,y,z]_centroid`, `length_z`, `radius`, and `thickness` | +| 20 | 2D Taylor-Green Vortex | 2 | N | Requires `[x,y]_centroid`, `length_x`, `length_y`, `vel(1)`, and `vel(2)` | +| 21 | Model | 2 & 3 | Y | Imports a Model (STL/OBJ). Requires `model%%filepath`. | The patch types supported by the MFC are listed in table [Patch Types](#patch-types). This includes types exclusive to one-, two-, and three-dimensional problems. diff --git a/src/common/m_derived_types.fpp b/src/common/m_derived_types.fpp index ed4a1a9034..81edfaa916 100644 --- a/src/common/m_derived_types.fpp +++ b/src/common/m_derived_types.fpp @@ -328,6 +328,7 @@ module m_derived_types !! Patch conditions for moving imersed boundaries integer :: moving_ibm ! 0 for no moving, 1 for moving, 2 for moving on forced path + real(wp) :: mass, moment ! mass and moment of inertia of object used to compute forces in 2-way coupling real(wp), dimension(1:3) :: vel real(wp), dimension(1:3) :: step_vel ! velocity array used to store intermediate steps in the time_stepper module real(wp), dimension(1:3) :: angular_vel diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 1a159c74d6..2cec02b5bb 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -975,6 +975,78 @@ contains end subroutine s_finalize_ibm_module + subroutine s_compute_moment_of_inertia(ib_marker, axis) + + real(wp), dimension(3), optional :: axis !< the axis about which we compute the moment. Only required in 3D. + integer, intent(in) :: ib_marker + + real (wp) :: moment, distance_to_axis, cell_volume + real (wp), dimension(3) :: position, closest_point_along_axis, vector_to_axis + integer :: i, j, k, count + + if (p == 0) then + axis = [0, 1, 0] + else if (sqrt(sum(axis**2)) == 0) then + ! if the object is not actually rotating at this time, return a dummy value and exit + patch_ib(ib_marker)%moment = 1._wp + return + else + axis = axis / sqrt(sum(axis)) + end if + + ! if the IB is in 2D or a 3D sphere, we can compute this exactly + if (patch_ib(ib_marker)%geometry == 2) then ! circle + patch_ib(ib_marker)%moment = 0.5 * patch_ib(ib_marker)%mass * (patch_ib(ib_marker)%radius)**2 + elseif (patch_ib(ib_marker)%geometry == 3) then ! rectangle + patch_ib(ib_marker)%moment = patch_ib(i)%mass * (patch_ib(ib_marker)%length_x**2 + patch_ib(ib_marker)%length_y**2) / 6._wp + elseif (patch_ib(ib_marker)%geometry == 8) then ! sphere + patch_ib(ib_marker)%moment = 0.4 * patch_ib(ib_marker)%mass * (patch_ib(ib_marker)%radius)**2 + + else ! we do not have an analytic moment of intertia calculation and need to approximate it directly + count = 0 + moment = 0._wp + cell_volume = (x_cc(1) - x_cc(0))*(y_cc(1) - y_cc(0)) ! computed without grid stretching. Update in the loop to perform with stretching + if (p /= 0) then + cell_volume = cell_volume * (z_cc(1) - z_cc(0)) + end if + + + #:call GPU_PARALLEL_LOOP(private='[position,closest_point_along_axis,vector_to_axis,distance_to_axis]', copy='[moment,count]', copyin='[ib_marker,cell_volume,axis]', collapse=3) + do i = 0, m + do j = 0, j + do k = 0, p + if (ib_markers%sf(i, j, k) == ib_marker) then + $:GPU_ATOMIC(atomic='update') + count = count + 1 ! incriment the count of total cells in the boundary + + ! get the position in local coordinates so that the axis passes through 0, 0, 0 + if (p == 0) then + position = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_marker)%x_centroid, patch_ib(ib_marker)%y_centroid, 0._wp] + else + position = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_marker)%x_centroid, patch_ib(ib_marker)%y_centroid, patch_ib(ib_marker)%z_centroid] + end if + + ! project the position along the axis to find the closest distance to the rotation axis + closest_point_along_axis = axis*dot_product(axis, position) + vector_to_axis = position - closest_point_along_axis + distance_to_axis = sum(vector_to_axis) ! saves the distance to the axis squared + + ! compute the position component of the moment + $:GPU_ATOMIC(atomic='update') + moment = moment + distance_to_axis + end if + end do + end do + end do + #:endcall GPU_PARALLEL_LOOP + + ! write the final moment assuming the points are all uniform density + patch_ib(ib_marker)%moment = moment * patch_ib(ib_marker)%mass / (count * cell_volume) + $:GPU_UPDATE(device='[patch_ib(ib_marker)%moment]') + end if + + end subroutine s_compute_moment_of_inertia + function cross_product(a, b) result(c) implicit none real(wp), intent(in) :: a(3), b(3) diff --git a/toolchain/bootstrap/modules.sh b/toolchain/bootstrap/modules.sh index 2a0245fc80..4ea412cef0 100644 --- a/toolchain/bootstrap/modules.sh +++ b/toolchain/bootstrap/modules.sh @@ -44,7 +44,8 @@ if [ -v $u_c ]; then log "$R""Caltech$W: Richardson (r)" log "$BR""Brown$W: Oscar (o)" log "$B""DoD$W: Carpenter Cray (cc) | Carpenter GNU (c) | Nautilus (n)" - log_n "($G""a$W/$G""f$W/$G""s$W/$G""w$W/$C""b$W/$C""e$CR/$C""d/$C""dai$CR/$Y""p$CR/$R""r$CR/$B""cc$CR/$B""c$CR/$B""n$CR/$BR""o"$CR"): " + log "$OR""Florida$W: HiPerGator (h)" + log_n "($G""a$W/$G""f$W/$G""s$W/$G""w$W/$C""b$W/$C""e$CR/$C""d/$C""dai$CR/$Y""p$CR/$R""r$CR/$B""cc$CR/$B""c$CR/$B""n$CR/$BR""o"$CR"/$OR""h"$CR"): " read u_c log fi diff --git a/toolchain/mfc/run/case_dicts.py b/toolchain/mfc/run/case_dicts.py index 80eb30cc34..6e0a0241d9 100644 --- a/toolchain/mfc/run/case_dicts.py +++ b/toolchain/mfc/run/case_dicts.py @@ -114,7 +114,7 @@ def analytic(self): ("theta", ParamType.REAL), ("slip", ParamType.LOG), ("c", ParamType.REAL), ("p", ParamType.REAL), ("t", ParamType.REAL), ("m", ParamType.REAL), - ("moving_ibm", ParamType.INT)]: + ("moving_ibm", ParamType.INT), ("mass", ParamType.REAL)]: PRE_PROCESS[f"patch_ib({ib_id})%{real_attr}"] = ty for dir_id in range(1, 4): diff --git a/toolchain/util.sh b/toolchain/util.sh index fddbe22af6..cf1da21d26 100644 --- a/toolchain/util.sh +++ b/toolchain/util.sh @@ -2,10 +2,11 @@ if [ -t 1 ]; then RED="\x1B[31m"; CYAN="\x1B[36m"; GREEN="\x1B[32m"; BROWN="\x1B[38;5;58m" - YELLOW="\x1B[33m"; MAGENTA="\x1B[35m"; BLUE="\x1B[34m"; COLOR_RESET="\033[m" + YELLOW="\x1B[33m"; MAGENTA="\x1B[35m"; BLUE="\x1B[34m"; ORANGE="\033[38;5;214m"; + COLOR_RESET="\033[m" R=$RED; C=$CYAN; G=$GREEN; BR=$BROWN - Y=$YELLOW; M=$MAGENTA; B=$BLUE; CR=$COLOR_RESET; W=$CR + Y=$YELLOW; M=$MAGENTA; B=$BLUE; OR=$ORANGE; CR=$COLOR_RESET; W=$CR fi log() { echo -e "$CYAN"mfc"$COLOR_RESET: $1$COLOR_RESET"; } From 1f39342a25317ba72a2128035ad433e2013a38ae Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 13 Nov 2025 15:21:10 -0500 Subject: [PATCH 02/23] Initial volume integration method for invicid surface integral calculation --- src/simulation/m_ibm.fpp | 47 ++++++++++++++++++++++++++++++ src/simulation/m_time_steppers.fpp | 12 ++++++-- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 2cec02b5bb..2d7cc84f3b 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -966,6 +966,53 @@ contains end subroutine s_update_mib + ! compute the surface integrals of the IB via a volume integraion method described in + ! "A coupled IBM/Euler-Lagrange framework for simulating shock-induced particle size segregation" + ! by Archana Sridhar and Jesse Capecelatro + subroutine s_compute_ib_forces() + + integer :: i, j, k, ib_idx + real(wp), dimension(:, :, :) :: pressure + real(wp), dimension(num_ibs) :: forces, torques + real(wp), dimension(1:3) :: pressure_divergence, radial_vector + real(wp) :: cell_volume + + forces = 0._wp + torques = 0._wp + pressure => q_prim_vf(E_idx)%sf ! pressure is the 3rd primitive variable in our array + + ! TODO :: This is currently only valid inviscid, and needs to be extended to add viscocity + do i = 0, m + do j = 0, n + do k = 0, p + ib_idx = ib_markers%sf(i, j, k) + if (ib_idx /= 0) then ! only need to compute the gradient for cells inside a IB + if (patch_ib(ib_idx)%moving_ibm == 2) then + radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_dx)%x_centroid, patch_ib(ib_dx)%y_centroid, patch_ib(ib_dx)%z_centroid] ! get the vector pointing to the grid cell + pressure_divergence(1) = (pressure(i+1, j, k) - pressure(i-1, j, k)) / (2._wp * x_cc(i)) + pressure_divergence(2) = (pressure(i, j+1, k) - pressure(i, j-1, k)) / (2._wp * y_cc(j)) + cell_volume = x_cc(i) * y_cc(j) + if (num_dims == 3) then + pressure_divergence(3) = (pressure(i, j, k+1) - pressure(i, j, k-1)) / (2._wp * z_cc(k)) + cell_volume = cell_volume * z_cc(k) + else + pressure_divergence(3) = 0._wp + end if + + forces(ib_idx) = forces(ib_idx) + pressure_divergence * cell_volume + torques(ib_idx) = torques(ib_idx) + cross_product(radial_vector, pressure_divergence) * cell_volume + end if + end if + end do + end do + end do + + do i = 1, num_ibs + patch_ib(i)%force = forces(i) + patch_ib(i)%torque = torques(i) + end do + end subroutine s_compute_ib_forces + !> Subroutine to deallocate memory reserved for the IBM module impure subroutine s_finalize_ibm_module() diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index d7ab8eb541..3c0ef257b5 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -577,11 +577,17 @@ contains patch_ib(i)%step_y_centroid = patch_ib(i)%y_centroid patch_ib(i)%step_z_centroid = patch_ib(i)%z_centroid end if + + if (patch_ib(i)%moving_ibm > 0) then + + ! integrate the force and tourque in two-way coupling + if (patch_ib(i)%moving_ibm == 2) then + call s_compute_ib_forces + end if - if (patch_ib(i)%moving_ibm == 1) then do j = 1, 3 - patch_ib(i)%vel(j) = (rk_coef(s, 1)*patch_ib(i)%step_vel(j) + rk_coef(s, 2)*patch_ib(i)%vel(j) + rk_coef(s, 3)*0._wp*dt)/rk_coef(s, 4) ! 0.0 is a placeholder for accelerations - patch_ib(i)%angular_vel(j) = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel(j) + rk_coef(s, 2)*patch_ib(i)%angular_vel(j) + rk_coef(s, 3)*0._wp*dt)/rk_coef(s, 4) + patch_ib(i)%vel(j) = (rk_coef(s, 1)*patch_ib(i)%step_vel(j) + rk_coef(s, 2)*patch_ib(i)%vel(j) + rk_coef(s, 3)*patch_ib(i)%force*dt)/rk_coef(s, 4) + patch_ib(i)%angular_vel(j) = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel(j) + rk_coef(s, 2)*patch_ib(i)%angular_vel(j) + rk_coef(s, 3)*patch_ib(i)%tourque*dt)/rk_coef(s, 4) ! Update the angle of the IB patch_ib(i)%angles(j) = (rk_coef(s, 1)*patch_ib(i)%step_angles(j) + rk_coef(s, 2)*patch_ib(i)%angles(j) + rk_coef(s, 3)*patch_ib(i)%angular_vel(j)*dt)/rk_coef(s, 4) From 9b687b8f0b86cb3028d36e0b031dd82958b30903 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 13 Nov 2025 15:39:29 -0500 Subject: [PATCH 03/23] Added time step integration code to support new coupling scheme --- src/simulation/m_time_steppers.fpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index 3c0ef257b5..ba81ac4ace 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -568,6 +568,8 @@ contains if (ib) then ! check if any IBMS are moving, and if so, update the markers, ghost points, levelsets, and levelset norms if (moving_immersed_boundary_flag) then + call s_compute_ib_forces() ! compute the force and torque on the IB from the fluid + do i = 1, num_ibs if (s == 1) then patch_ib(i)%step_vel = patch_ib(i)%vel @@ -579,19 +581,20 @@ contains end if if (patch_ib(i)%moving_ibm > 0) then - - ! integrate the force and tourque in two-way coupling - if (patch_ib(i)%moving_ibm == 2) then - call s_compute_ib_forces + patch_ib(i)%vel = (rk_coef(s, 1)*patch_ib(i)%step_vel + rk_coef(s, 2)*patch_ib(i)%vel + rk_coef(s, 3)*dt*patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) + patch_ib(i)%angular_vel = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4) ! take a step without additional angular momentum + if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force + ! update the velocity from the force value + patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) + + ! update the angular velocity with the torque value + patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%tourque/rk_coef(s, 4)) ! add the torque to the angular momentum + s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum + patch_ib(i)%angualr_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia end if - do j = 1, 3 - patch_ib(i)%vel(j) = (rk_coef(s, 1)*patch_ib(i)%step_vel(j) + rk_coef(s, 2)*patch_ib(i)%vel(j) + rk_coef(s, 3)*patch_ib(i)%force*dt)/rk_coef(s, 4) - patch_ib(i)%angular_vel(j) = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel(j) + rk_coef(s, 2)*patch_ib(i)%angular_vel(j) + rk_coef(s, 3)*patch_ib(i)%tourque*dt)/rk_coef(s, 4) - - ! Update the angle of the IB - patch_ib(i)%angles(j) = (rk_coef(s, 1)*patch_ib(i)%step_angles(j) + rk_coef(s, 2)*patch_ib(i)%angles(j) + rk_coef(s, 3)*patch_ib(i)%angular_vel(j)*dt)/rk_coef(s, 4) - end do + ! Update the angle of the IB + patch_ib(i)%angles(j) = (rk_coef(s, 1)*patch_ib(i)%step_angles(j) + rk_coef(s, 2)*patch_ib(i)%angles(j) + rk_coef(s, 3)*patch_ib(i)%angular_vel(j)*dt)/rk_coef(s, 4) ! Update the position of the IB patch_ib(i)%x_centroid = (rk_coef(s, 1)*patch_ib(i)%step_x_centroid + rk_coef(s, 2)*patch_ib(i)%x_centroid + rk_coef(s, 3)*patch_ib(i)%vel(1)*dt)/rk_coef(s, 4) From 22dba767d4cc183d589a77312d42bcbfc01aaa47 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 13 Nov 2025 15:53:35 -0500 Subject: [PATCH 04/23] Changed torque calculation to output torque in local IB coordinates --- src/common/m_derived_types.fpp | 1 + src/simulation/m_ibm.fpp | 3 ++- src/simulation/m_time_steppers.fpp | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/m_derived_types.fpp b/src/common/m_derived_types.fpp index 81edfaa916..e6b846c625 100644 --- a/src/common/m_derived_types.fpp +++ b/src/common/m_derived_types.fpp @@ -329,6 +329,7 @@ module m_derived_types !! Patch conditions for moving imersed boundaries integer :: moving_ibm ! 0 for no moving, 1 for moving, 2 for moving on forced path real(wp) :: mass, moment ! mass and moment of inertia of object used to compute forces in 2-way coupling + real(wp), dimension(1:3) :: force, tourque ! vectors for the computed force and torque values applied to an IB real(wp), dimension(1:3) :: vel real(wp), dimension(1:3) :: step_vel ! velocity array used to store intermediate steps in the time_stepper module real(wp), dimension(1:3) :: angular_vel diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 2d7cc84f3b..f07eea634c 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1007,9 +1007,10 @@ contains end do end do + ! apply the summed forces do i = 1, num_ibs patch_ib(i)%force = forces(i) - patch_ib(i)%torque = torques(i) + patch_ib(i)%torque = matmul(patch_ib(i)%inverse_rotation_matrix, torques(i)) ! torques must be computed in the local coordinates of the IB end do end subroutine s_compute_ib_forces diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index ba81ac4ace..f589d494dd 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -582,8 +582,9 @@ contains if (patch_ib(i)%moving_ibm > 0) then patch_ib(i)%vel = (rk_coef(s, 1)*patch_ib(i)%step_vel + rk_coef(s, 2)*patch_ib(i)%vel + rk_coef(s, 3)*dt*patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) - patch_ib(i)%angular_vel = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4) ! take a step without additional angular momentum - if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force + patch_ib(i)%angular_vel = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4) + + if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force and torque ! update the velocity from the force value patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) From 42512afc60028fefa6c10452c1463f8980e76442 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 13 Nov 2025 15:54:32 -0500 Subject: [PATCH 05/23] syntax error correction --- src/simulation/m_ibm.fpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index f07eea634c..29688e6d7c 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1010,7 +1010,7 @@ contains ! apply the summed forces do i = 1, num_ibs patch_ib(i)%force = forces(i) - patch_ib(i)%torque = matmul(patch_ib(i)%inverse_rotation_matrix, torques(i)) ! torques must be computed in the local coordinates of the IB + patch_ib(i)%torque = matmul(patch_ib(i)%rotation_matrix_inverse, torques(i)) ! torques must be computed in the local coordinates of the IB end do end subroutine s_compute_ib_forces From 85ea1b19f0fd7e345f2882f4bbd790f9975c0bfe Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Fri, 14 Nov 2025 08:13:51 -0500 Subject: [PATCH 06/23] Resolved compilation errors --- src/common/m_derived_types.fpp | 2 +- src/simulation/m_ibm.fpp | 18 +++++++++--------- src/simulation/m_time_steppers.fpp | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/common/m_derived_types.fpp b/src/common/m_derived_types.fpp index e6b846c625..63a406aaa4 100644 --- a/src/common/m_derived_types.fpp +++ b/src/common/m_derived_types.fpp @@ -329,7 +329,7 @@ module m_derived_types !! Patch conditions for moving imersed boundaries integer :: moving_ibm ! 0 for no moving, 1 for moving, 2 for moving on forced path real(wp) :: mass, moment ! mass and moment of inertia of object used to compute forces in 2-way coupling - real(wp), dimension(1:3) :: force, tourque ! vectors for the computed force and torque values applied to an IB + real(wp), dimension(1:3) :: force, torque ! vectors for the computed force and torque values applied to an IB real(wp), dimension(1:3) :: vel real(wp), dimension(1:3) :: step_vel ! velocity array used to store intermediate steps in the time_stepper module real(wp), dimension(1:3) :: angular_vel diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 29688e6d7c..fea82f9a31 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -969,17 +969,17 @@ contains ! compute the surface integrals of the IB via a volume integraion method described in ! "A coupled IBM/Euler-Lagrange framework for simulating shock-induced particle size segregation" ! by Archana Sridhar and Jesse Capecelatro - subroutine s_compute_ib_forces() + subroutine s_compute_ib_forces(pressure) + + real(wp), dimension(:, :, :), intent(in) :: pressure integer :: i, j, k, ib_idx - real(wp), dimension(:, :, :) :: pressure - real(wp), dimension(num_ibs) :: forces, torques + real(wp), dimension(num_ibs, 3) :: forces, torques real(wp), dimension(1:3) :: pressure_divergence, radial_vector real(wp) :: cell_volume forces = 0._wp torques = 0._wp - pressure => q_prim_vf(E_idx)%sf ! pressure is the 3rd primitive variable in our array ! TODO :: This is currently only valid inviscid, and needs to be extended to add viscocity do i = 0, m @@ -988,7 +988,7 @@ contains ib_idx = ib_markers%sf(i, j, k) if (ib_idx /= 0) then ! only need to compute the gradient for cells inside a IB if (patch_ib(ib_idx)%moving_ibm == 2) then - radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_dx)%x_centroid, patch_ib(ib_dx)%y_centroid, patch_ib(ib_dx)%z_centroid] ! get the vector pointing to the grid cell + radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, patch_ib(ib_idx)%z_centroid] ! get the vector pointing to the grid cell pressure_divergence(1) = (pressure(i+1, j, k) - pressure(i-1, j, k)) / (2._wp * x_cc(i)) pressure_divergence(2) = (pressure(i, j+1, k) - pressure(i, j-1, k)) / (2._wp * y_cc(j)) cell_volume = x_cc(i) * y_cc(j) @@ -999,8 +999,8 @@ contains pressure_divergence(3) = 0._wp end if - forces(ib_idx) = forces(ib_idx) + pressure_divergence * cell_volume - torques(ib_idx) = torques(ib_idx) + cross_product(radial_vector, pressure_divergence) * cell_volume + forces(ib_idx, :) = forces(ib_idx, :) + pressure_divergence * cell_volume + torques(ib_idx, :) = torques(ib_idx, :) + cross_product(radial_vector, pressure_divergence) * cell_volume end if end if end do @@ -1009,8 +1009,8 @@ contains ! apply the summed forces do i = 1, num_ibs - patch_ib(i)%force = forces(i) - patch_ib(i)%torque = matmul(patch_ib(i)%rotation_matrix_inverse, torques(i)) ! torques must be computed in the local coordinates of the IB + patch_ib(i)%force(:) = forces(i, :) + patch_ib(i)%torque(:) = matmul(patch_ib(i)%rotation_matrix_inverse, torques(i, :)) ! torques must be computed in the local coordinates of the IB end do end subroutine s_compute_ib_forces diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index f589d494dd..97e782685d 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -568,7 +568,7 @@ contains if (ib) then ! check if any IBMS are moving, and if so, update the markers, ghost points, levelsets, and levelset norms if (moving_immersed_boundary_flag) then - call s_compute_ib_forces() ! compute the force and torque on the IB from the fluid + call s_compute_ib_forces(q_prim_vf(E_idx)%sf) ! compute the force and torque on the IB from the fluid do i = 1, num_ibs if (s == 1) then @@ -589,9 +589,9 @@ contains patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) ! update the angular velocity with the torque value - patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%tourque/rk_coef(s, 4)) ! add the torque to the angular momentum - s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum - patch_ib(i)%angualr_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia + patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum + call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum + patch_ib(i)%angular_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia end if ! Update the angle of the IB From b38796efe7ad13f6352d7b6e16b23fd4846be231 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Fri, 14 Nov 2025 10:33:09 -0500 Subject: [PATCH 07/23] Running ok-looking tests --- src/pre_process/m_global_parameters.fpp | 2 ++ src/simulation/m_ibm.fpp | 9 ++++++--- src/simulation/m_mpi_proxy.fpp | 2 +- src/simulation/m_time_steppers.fpp | 15 ++++++++------- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/pre_process/m_global_parameters.fpp b/src/pre_process/m_global_parameters.fpp index 00d979fd7b..2540be132a 100644 --- a/src/pre_process/m_global_parameters.fpp +++ b/src/pre_process/m_global_parameters.fpp @@ -548,6 +548,8 @@ contains patch_ib(i)%vel(:) = 0._wp patch_ib(i)%angles(:) = 0._wp patch_ib(i)%angular_vel(:) = 0._wp + patch_ib(i)%mass = dflt_real + patch_ib(i)%moment = dflt_real ! sets values of a rotation matrix which can be used when calculating rotations patch_ib(i)%rotation_matrix = 0._wp diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index fea82f9a31..b29ad67c61 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -101,7 +101,6 @@ contains end if call s_update_ib_rotation_matrix(i) end do - $:GPU_ENTER_DATA(copyin='[patch_ib]') ! Allocating the patch identities bookkeeping variable @@ -971,7 +970,7 @@ contains ! by Archana Sridhar and Jesse Capecelatro subroutine s_compute_ib_forces(pressure) - real(wp), dimension(:, :, :), intent(in) :: pressure + real(wp), dimension(0:m, 0:n, 0:p), intent(in) :: pressure integer :: i, j, k, ib_idx real(wp), dimension(num_ibs, 3) :: forces, torques @@ -988,7 +987,11 @@ contains ib_idx = ib_markers%sf(i, j, k) if (ib_idx /= 0) then ! only need to compute the gradient for cells inside a IB if (patch_ib(ib_idx)%moving_ibm == 2) then - radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, patch_ib(ib_idx)%z_centroid] ! get the vector pointing to the grid cell + if (num_dims == 3) then + radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, patch_ib(ib_idx)%z_centroid] ! get the vector pointing to the grid cell + else + radial_vector = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, 0._wp] ! get the vector pointing to the grid cell + end if pressure_divergence(1) = (pressure(i+1, j, k) - pressure(i-1, j, k)) / (2._wp * x_cc(i)) pressure_divergence(2) = (pressure(i, j+1, k) - pressure(i, j-1, k)) / (2._wp * y_cc(j)) cell_volume = x_cc(i) * y_cc(j) diff --git a/src/simulation/m_mpi_proxy.fpp b/src/simulation/m_mpi_proxy.fpp index d578eb7ff7..07536b1d3e 100644 --- a/src/simulation/m_mpi_proxy.fpp +++ b/src/simulation/m_mpi_proxy.fpp @@ -203,7 +203,7 @@ contains do i = 1, num_ibs #:for VAR in [ 'radius', 'length_x', 'length_y', 'length_z', & - & 'x_centroid', 'y_centroid', 'z_centroid', 'c', 'm', 'p', 't', 'theta', 'slip'] + & 'x_centroid', 'y_centroid', 'z_centroid', 'c', 'm', 'p', 't', 'theta', 'slip', 'mass'] call MPI_BCAST(patch_ib(i)%${VAR}$, 1, mpi_p, 0, MPI_COMM_WORLD, ierr) #:endfor #:for VAR in ['vel', 'angular_vel', 'angles'] diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index 97e782685d..3252f1ef0e 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -581,21 +581,22 @@ contains end if if (patch_ib(i)%moving_ibm > 0) then - patch_ib(i)%vel = (rk_coef(s, 1)*patch_ib(i)%step_vel + rk_coef(s, 2)*patch_ib(i)%vel + rk_coef(s, 3)*dt*patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) - patch_ib(i)%angular_vel = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4) + patch_ib(i)%vel = (rk_coef(s, 1)*patch_ib(i)%step_vel + rk_coef(s, 2)*patch_ib(i)%vel)/rk_coef(s, 4) + patch_ib(i)%angular_vel =(rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4) if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force and torque ! update the velocity from the force value - patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) + print *, "V_diff:", patch_ib(i)%force / patch_ib(i)%mass + patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) ! update the angular velocity with the torque value - patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum - call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum - patch_ib(i)%angular_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia + ! patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum + ! call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum + ! patch_ib(i)%angular_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia end if ! Update the angle of the IB - patch_ib(i)%angles(j) = (rk_coef(s, 1)*patch_ib(i)%step_angles(j) + rk_coef(s, 2)*patch_ib(i)%angles(j) + rk_coef(s, 3)*patch_ib(i)%angular_vel(j)*dt)/rk_coef(s, 4) + patch_ib(i)%angles = (rk_coef(s, 1)*patch_ib(i)%step_angles + rk_coef(s, 2)*patch_ib(i)%angles + rk_coef(s, 3)*patch_ib(i)%angular_vel*dt)/rk_coef(s, 4) ! Update the position of the IB patch_ib(i)%x_centroid = (rk_coef(s, 1)*patch_ib(i)%step_x_centroid + rk_coef(s, 2)*patch_ib(i)%x_centroid + rk_coef(s, 3)*patch_ib(i)%vel(1)*dt)/rk_coef(s, 4) From 0cbe4b9af30eaa8c40f73be54099621b08f9bb21 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Fri, 14 Nov 2025 14:19:18 -0500 Subject: [PATCH 08/23] This is actually doing quite a good job, but two problems. One is it is accelerating. Two is it is going uupward randomly. And three is it has a very large pressure interpolation. --- src/common/m_constants.fpp | 2 +- src/simulation/m_ibm.fpp | 20 +++++++++++++++----- src/simulation/m_time_steppers.fpp | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/common/m_constants.fpp b/src/common/m_constants.fpp index b4d5982aa5..f4d88b1ff5 100644 --- a/src/common/m_constants.fpp +++ b/src/common/m_constants.fpp @@ -29,7 +29,7 @@ module m_constants integer, parameter :: dflt_num_igr_iters = 2 !< number of iterations for IGR elliptic solve integer, parameter :: dflt_num_igr_warm_start_iters = 50 !< default number of iterations for IGR elliptic solve real(wp), parameter :: dflt_alf_factor = 10._wp !< scaling factor for IGR alpha - integer, parameter :: gp_layers = 3 !< Number of ghost point layers for IBM + integer, parameter :: gp_layers = 50 !< Number of ghost point layers for IBM real(wp), parameter :: capillary_cutoff = 1.e-6 !< color function gradient magnitude at which to apply the surface tension fluxes real(wp), parameter :: acoustic_spatial_support_width = 2.5_wp !< Spatial support width of acoustic source, used in s_source_spatial real(wp), parameter :: dflt_vcfl_dt = 100._wp !< value of vcfl_dt when viscosity is off for computing adaptive timestep size diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index b29ad67c61..05b30e4cdb 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -196,9 +196,8 @@ contains type(ghost_point) :: gp type(ghost_point) :: innerp if (num_gps > 0) then - #:call GPU_PARALLEL_LOOP(private='[physical_loc,dyn_pres,alpha_rho_IP, alpha_IP,pres_IP,vel_IP,vel_g,vel_norm_IP,r_IP, v_IP,pb_IP,mv_IP,nmom_IP,presb_IP,massv_IP,rho, gamma,pi_inf,Re_K,G_K,Gs,gp,innerp,norm,buf, radial_vector, rotation_velocity, j,k,l,q]') + ! #:call GPU_PARALLEL_LOOP(private='[physical_loc,dyn_pres,alpha_rho_IP, alpha_IP,pres_IP,vel_IP,vel_g,vel_norm_IP,r_IP, v_IP,pb_IP,mv_IP,nmom_IP,presb_IP,massv_IP,rho, gamma,pi_inf,Re_K,G_K,Gs,gp,innerp,norm,buf, radial_vector, rotation_velocity, j,k,l,q]') do i = 1, num_gps - gp = ghost_points(i) j = gp%loc(1) k = gp%loc(2) @@ -237,10 +236,21 @@ contains q_prim_vf(q)%sf(j, k, l) = alpha_rho_IP(q) q_prim_vf(advxb + q - 1)%sf(j, k, l) = alpha_IP(q) end do - + if (surface_tension) then q_prim_vf(c_idx)%sf(j, k, l) = c_IP end if + + ! set the pressure + do q = 1, num_fluids + if (patch_ib(patch_id)%moving_ibm == 0) then + q_prim_vf(E_idx)%sf(j, k, l) = pres_IP + else + ! TODO :: imporve for two fluid + q_prim_vf(E_idx)%sf(j, k, l) = pres_IP / (1._wp - 2._wp*abs(levelset%sf(j,k,l,patch_id)*alpha_rho_IP(q)/pres_IP) * dot_product(patch_ib(patch_id)%force/patch_ib(patch_id)%mass, levelset_norm%sf(j,k,l,patch_id,:))) + end if + end do + if (model_eqns /= 4) then ! If in simulation, use acc mixture subroutines if (elasticity) then @@ -364,7 +374,7 @@ contains end do end if end do - #:endcall GPU_PARALLEL_LOOP + ! #:endcall GPU_PARALLEL_LOOP end if !Correct the state of the inner points in IBs @@ -1002,7 +1012,7 @@ contains pressure_divergence(3) = 0._wp end if - forces(ib_idx, :) = forces(ib_idx, :) + pressure_divergence * cell_volume + forces(ib_idx, :) = forces(ib_idx, :) - pressure_divergence * cell_volume torques(ib_idx, :) = torques(ib_idx, :) + cross_product(radial_vector, pressure_divergence) * cell_volume end if end if diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index 3252f1ef0e..e460a47ca2 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -586,8 +586,8 @@ contains if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force and torque ! update the velocity from the force value - print *, "V_diff:", patch_ib(i)%force / patch_ib(i)%mass patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) + print *, "Velocity: ", patch_ib(i)%vel ! update the angular velocity with the torque value ! patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum From 9ea30208f8282c16fa7156513af656a2b242cb51 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Sun, 16 Nov 2025 09:03:20 -0600 Subject: [PATCH 09/23] Important update to simulation case inputs --- toolchain/mfc/run/case_dicts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/mfc/run/case_dicts.py b/toolchain/mfc/run/case_dicts.py index 6e0a0241d9..6125d6667d 100644 --- a/toolchain/mfc/run/case_dicts.py +++ b/toolchain/mfc/run/case_dicts.py @@ -348,7 +348,7 @@ def analytic(self): ("theta", ParamType.REAL), ("slip", ParamType.LOG), ("c", ParamType.REAL), ("p", ParamType.REAL), ("t", ParamType.REAL), ("m", ParamType.REAL), - ("moving_ibm", ParamType.INT)]: + ("moving_ibm", ParamType.INT), ("mass", ParamType.REAL)]: SIMULATION[f"patch_ib({ib_id})%{real_attr}"] = ty for dir_id in range(1, 4): From 3f68040aa77b6c8c8dea3c7d590ba439d1f252f8 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Fri, 21 Nov 2025 20:33:46 -0600 Subject: [PATCH 10/23] found my error resulting from improper movement of the data from one sectino to another in an array --- src/simulation/m_ibm.fpp | 5 +++-- src/simulation/m_time_steppers.fpp | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 05b30e4cdb..0d3076570b 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1012,8 +1012,8 @@ contains pressure_divergence(3) = 0._wp end if - forces(ib_idx, :) = forces(ib_idx, :) - pressure_divergence * cell_volume - torques(ib_idx, :) = torques(ib_idx, :) + cross_product(radial_vector, pressure_divergence) * cell_volume + forces(ib_idx, :) = forces(ib_idx, :) - (pressure_divergence * cell_volume) + torques(ib_idx, :) = torques(ib_idx, :) + (cross_product(radial_vector, pressure_divergence) * cell_volume) end if end if end do @@ -1025,6 +1025,7 @@ contains patch_ib(i)%force(:) = forces(i, :) patch_ib(i)%torque(:) = matmul(patch_ib(i)%rotation_matrix_inverse, torques(i, :)) ! torques must be computed in the local coordinates of the IB end do + end subroutine s_compute_ib_forces !> Subroutine to deallocate memory reserved for the IBM module diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index e460a47ca2..d0d22bac90 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -568,7 +568,7 @@ contains if (ib) then ! check if any IBMS are moving, and if so, update the markers, ghost points, levelsets, and levelset norms if (moving_immersed_boundary_flag) then - call s_compute_ib_forces(q_prim_vf(E_idx)%sf) ! compute the force and torque on the IB from the fluid + call s_compute_ib_forces(q_prim_vf(E_idx)%sf(0:m, 0:n, 0:p)) ! compute the force and torque on the IB from the fluid do i = 1, num_ibs if (s == 1) then @@ -587,7 +587,6 @@ contains if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force and torque ! update the velocity from the force value patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) - print *, "Velocity: ", patch_ib(i)%vel ! update the angular velocity with the torque value ! patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum From 676aa73434ed59c47b1591c89092fe3564dfc941 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Tue, 2 Dec 2025 12:32:02 -0500 Subject: [PATCH 11/23] initial 2_way --- src/common/m_constants.fpp | 2 +- src/simulation/m_ibm.fpp | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/common/m_constants.fpp b/src/common/m_constants.fpp index f4d88b1ff5..b4d5982aa5 100644 --- a/src/common/m_constants.fpp +++ b/src/common/m_constants.fpp @@ -29,7 +29,7 @@ module m_constants integer, parameter :: dflt_num_igr_iters = 2 !< number of iterations for IGR elliptic solve integer, parameter :: dflt_num_igr_warm_start_iters = 50 !< default number of iterations for IGR elliptic solve real(wp), parameter :: dflt_alf_factor = 10._wp !< scaling factor for IGR alpha - integer, parameter :: gp_layers = 50 !< Number of ghost point layers for IBM + integer, parameter :: gp_layers = 3 !< Number of ghost point layers for IBM real(wp), parameter :: capillary_cutoff = 1.e-6 !< color function gradient magnitude at which to apply the surface tension fluxes real(wp), parameter :: acoustic_spatial_support_width = 2.5_wp !< Spatial support width of acoustic source, used in s_source_spatial real(wp), parameter :: dflt_vcfl_dt = 100._wp !< value of vcfl_dt when viscosity is off for computing adaptive timestep size diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 0d3076570b..d275952e7c 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -195,6 +195,22 @@ contains real(wp) :: buf type(ghost_point) :: gp type(ghost_point) :: innerp + + ! set the Moving IBM Pressure Values + do patch_id = 1, num_ibs + if (patch_ib(patch_id)%moving_ibm == 2) then + do j = 0, m + do k = 0, n + do l = 0, p + if (ib_markers%sf(j,k,l) == patch_id) then + q_prim_vf(E_idx)%sf(j, k, l) = 1._wp + end if + end do + end do + end do + end if + end do + if (num_gps > 0) then ! #:call GPU_PARALLEL_LOOP(private='[physical_loc,dyn_pres,alpha_rho_IP, alpha_IP,pres_IP,vel_IP,vel_g,vel_norm_IP,r_IP, v_IP,pb_IP,mv_IP,nmom_IP,presb_IP,massv_IP,rho, gamma,pi_inf,Re_K,G_K,Gs,gp,innerp,norm,buf, radial_vector, rotation_velocity, j,k,l,q]') do i = 1, num_gps @@ -1026,6 +1042,8 @@ contains patch_ib(i)%torque(:) = matmul(patch_ib(i)%rotation_matrix_inverse, torques(i, :)) ! torques must be computed in the local coordinates of the IB end do + print *, patch_ib(1)%force(1:2) + end subroutine s_compute_ib_forces !> Subroutine to deallocate memory reserved for the IBM module From 5d2fc37489f36605f488f6ac659c57d06be64d93 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Tue, 2 Dec 2025 12:46:31 -0500 Subject: [PATCH 12/23] spelling and formatting --- src/simulation/m_ibm.fpp | 163 +++-------------------------- src/simulation/m_time_steppers.fpp | 10 +- 2 files changed, 18 insertions(+), 155 deletions(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 643c2853d0..21825f5ee3 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -246,153 +246,6 @@ contains alpha_rho_IP, alpha_IP, pres_IP, vel_IP, c_IP) end if -<<<<<<< HEAD - ! Set q_prim_vf params at GP so that mixture vars calculated properly - $:GPU_LOOP(parallelism='[seq]') - do q = 1, num_fluids - q_prim_vf(q)%sf(j, k, l) = alpha_rho_IP(q) - q_prim_vf(advxb + q - 1)%sf(j, k, l) = alpha_IP(q) - end do - - if (surface_tension) then - q_prim_vf(c_idx)%sf(j, k, l) = c_IP - end if - - ! set the pressure - do q = 1, num_fluids - if (patch_ib(patch_id)%moving_ibm == 0) then - q_prim_vf(E_idx)%sf(j, k, l) = pres_IP - else - ! TODO :: imporve for two fluid - q_prim_vf(E_idx)%sf(j, k, l) = pres_IP / (1._wp - 2._wp*abs(levelset%sf(j,k,l,patch_id)*alpha_rho_IP(q)/pres_IP) * dot_product(patch_ib(patch_id)%force/patch_ib(patch_id)%mass, levelset_norm%sf(j,k,l,patch_id,:))) - end if - end do - - if (model_eqns /= 4) then - ! If in simulation, use acc mixture subroutines - if (elasticity) then - call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv_K, alpha_IP, & - alpha_rho_IP, Re_K, G_K, Gs) - else if (bubbles_euler) then - call s_convert_species_to_mixture_variables_bubbles_acc(rho, gamma, pi_inf, qv_K, alpha_IP, & - alpha_rho_IP, Re_K) - else - call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv_K, alpha_IP, & - alpha_rho_IP, Re_K) - end if - end if - - ! Calculate velocity of ghost cell - if (gp%slip) then - norm(1:3) = levelset_norm%sf(gp%loc(1), gp%loc(2), gp%loc(3), gp%ib_patch_id, 1:3) - buf = sqrt(sum(norm**2)) - norm = norm/buf - vel_norm_IP = sum(vel_IP*norm)*norm - vel_g = vel_IP - vel_norm_IP - if (patch_ib(patch_id)%moving_ibm /= 0) then - ! compute the linear velocity of the ghost point due to rotation - radial_vector = physical_loc - [patch_ib(patch_id)%x_centroid, & - patch_ib(patch_id)%y_centroid, patch_ib(patch_id)%z_centroid] - rotation_velocity = cross_product(matmul(patch_ib(patch_id)%rotation_matrix, patch_ib(patch_id)%angular_vel), radial_vector) - - ! add only the component of the IB's motion that is normal to the surface - vel_g = vel_g + sum((patch_ib(patch_id)%vel + rotation_velocity)*norm)*norm - end if - else - if (patch_ib(patch_id)%moving_ibm == 0) then - ! we know the object is not moving if moving_ibm is 0 (false) - vel_g = 0._wp - else - ! get the vector that points from the centroid to the ghost - radial_vector = physical_loc - [patch_ib(patch_id)%x_centroid, & - patch_ib(patch_id)%y_centroid, patch_ib(patch_id)%z_centroid] - ! convert the angular velocity from the inertial reference frame to the fluids frame, then convert to linear velocity - rotation_velocity = cross_product(matmul(patch_ib(patch_id)%rotation_matrix, patch_ib(patch_id)%angular_vel), radial_vector) - do q = 1, 3 - ! if mibm is 1 or 2, then the boundary may be moving - vel_g(q) = patch_ib(patch_id)%vel(q) ! add the linear velocity - vel_g(q) = vel_g(q) + rotation_velocity(q) ! add the rotational velocity - end do - end if - end if - - ! Set momentum - $:GPU_LOOP(parallelism='[seq]') - do q = momxb, momxe - q_cons_vf(q)%sf(j, k, l) = rho*vel_g(q - momxb + 1) - dyn_pres = dyn_pres + q_cons_vf(q)%sf(j, k, l)* & - vel_g(q - momxb + 1)/2._wp - end do - - ! Set continuity and adv vars - $:GPU_LOOP(parallelism='[seq]') - do q = 1, num_fluids - q_cons_vf(q)%sf(j, k, l) = alpha_rho_IP(q) - q_cons_vf(advxb + q - 1)%sf(j, k, l) = alpha_IP(q) - end do - - ! Set color function - if (surface_tension) then - q_cons_vf(c_idx)%sf(j, k, l) = c_IP - end if - - ! Set Energy - if (bubbles_euler) then - q_cons_vf(E_idx)%sf(j, k, l) = (1 - alpha_IP(1))*(gamma*pres_IP + pi_inf + dyn_pres) - else - q_cons_vf(E_idx)%sf(j, k, l) = gamma*pres_IP + pi_inf + dyn_pres - end if - ! Set bubble vars - if (bubbles_euler .and. .not. qbmm) then - call s_comp_n_from_prim(alpha_IP(1), r_IP, nbub, weight) - $:GPU_LOOP(parallelism='[seq]') - do q = 1, nb - q_cons_vf(bubxb + (q - 1)*2)%sf(j, k, l) = nbub*r_IP(q) - q_cons_vf(bubxb + (q - 1)*2 + 1)%sf(j, k, l) = nbub*v_IP(q) - if (.not. polytropic) then - q_cons_vf(bubxb + (q - 1)*4)%sf(j, k, l) = nbub*r_IP(q) - q_cons_vf(bubxb + (q - 1)*4 + 1)%sf(j, k, l) = nbub*v_IP(q) - q_cons_vf(bubxb + (q - 1)*4 + 2)%sf(j, k, l) = nbub*pb_IP(q) - q_cons_vf(bubxb + (q - 1)*4 + 3)%sf(j, k, l) = nbub*mv_IP(q) - end if - end do - end if - - if (qbmm) then - - nbub = nmom_IP(1) - $:GPU_LOOP(parallelism='[seq]') - do q = 1, nb*nmom - q_cons_vf(bubxb + q - 1)%sf(j, k, l) = nbub*nmom_IP(q) - end do - - $:GPU_LOOP(parallelism='[seq]') - do q = 1, nb - q_cons_vf(bubxb + (q - 1)*nmom)%sf(j, k, l) = nbub - end do - - if (.not. polytropic) then - $:GPU_LOOP(parallelism='[seq]') - do q = 1, nb - $:GPU_LOOP(parallelism='[seq]') - do r = 1, nnode - pb_in(j, k, l, r, q) = presb_IP((q - 1)*nnode + r) - mv_in(j, k, l, r, q) = massv_IP((q - 1)*nnode + r) - end do - end do - end if - end if - - if (model_eqns == 3) then - $:GPU_LOOP(parallelism='[seq]') - do q = intxb, intxe - q_cons_vf(q)%sf(j, k, l) = alpha_IP(q - intxb + 1)*(gammas(q - intxb + 1)*pres_IP & - + pi_infs(q - intxb + 1)) - end do - end if - end do - $:END_GPU_PARALLEL_LOOP() -======= dyn_pres = 0._wp ! Set q_prim_vf params at GP so that mixture vars calculated properly @@ -405,6 +258,17 @@ contains if (surface_tension) then q_prim_vf(c_idx)%sf(j, k, l) = c_IP end if + + ! set the pressure + do q = 1, num_fluids + if (patch_ib(patch_id)%moving_ibm == 0) then + q_prim_vf(E_idx)%sf(j, k, l) = pres_IP + else + ! TODO :: improve for two fluid + q_prim_vf(E_idx)%sf(j, k, l) = pres_IP / (1._wp - 2._wp*abs(levelset%sf(j,k,l,patch_id)*alpha_rho_IP(q)/pres_IP) * dot_product(patch_ib(patch_id)%force/patch_ib(patch_id)%mass, levelset_norm%sf(j,k,l,patch_id,:))) + end if + end do + if (model_eqns /= 4) then ! If in simulation, use acc mixture subroutines if (elasticity) then @@ -526,7 +390,6 @@ contains end if end do $:END_GPU_PARALLEL_LOOP() ->>>>>>> master end if !Correct the state of the inner points in IBs @@ -1222,7 +1085,7 @@ contains elseif (patch_ib(ib_marker)%geometry == 8) then ! sphere patch_ib(ib_marker)%moment = 0.4 * patch_ib(ib_marker)%mass * (patch_ib(ib_marker)%radius)**2 - else ! we do not have an analytic moment of intertia calculation and need to approximate it directly + else ! we do not have an analytic moment of inertia calculation and need to approximate it directly count = 0 moment = 0._wp cell_volume = (x_cc(1) - x_cc(0))*(y_cc(1) - y_cc(0)) ! computed without grid stretching. Update in the loop to perform with stretching @@ -1237,7 +1100,7 @@ contains do k = 0, p if (ib_markers%sf(i, j, k) == ib_marker) then $:GPU_ATOMIC(atomic='update') - count = count + 1 ! incriment the count of total cells in the boundary + count = count + 1 ! increment the count of total cells in the boundary ! get the position in local coordinates so that the axis passes through 0, 0, 0 if (p == 0) then diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index da0f21cae9..a864921379 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -622,15 +622,15 @@ contains patch_ib(i)%step_y_centroid = patch_ib(i)%y_centroid patch_ib(i)%step_z_centroid = patch_ib(i)%z_centroid end if - + if (patch_ib(i)%moving_ibm > 0) then - patch_ib(i)%vel = (rk_coef(s, 1)*patch_ib(i)%step_vel + rk_coef(s, 2)*patch_ib(i)%vel)/rk_coef(s, 4) - patch_ib(i)%angular_vel =(rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4) + patch_ib(i)%vel = (rk_coef(s, 1)*patch_ib(i)%step_vel + rk_coef(s, 2)*patch_ib(i)%vel)/rk_coef(s, 4) + patch_ib(i)%angular_vel = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4) if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force and torque ! update the velocity from the force value - patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3) * dt * (patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) - + patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3)*dt*(patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) + ! update the angular velocity with the torque value ! patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum ! call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum From b7f00d1200bc0f3a55cdf44574e0679e862c94e9 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Tue, 2 Dec 2025 13:35:18 -0500 Subject: [PATCH 13/23] Back to working after merge: --- src/simulation/m_ibm.fpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 21825f5ee3..220e10e027 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1094,7 +1094,7 @@ contains end if - #:call GPU_PARALLEL_LOOP(private='[position,closest_point_along_axis,vector_to_axis,distance_to_axis]', copy='[moment,count]', copyin='[ib_marker,cell_volume,axis]', collapse=3) + $:GPU_PARALLEL_LOOP(private='[position,closest_point_along_axis,vector_to_axis,distance_to_axis]', copy='[moment,count]', copyin='[ib_marker,cell_volume,axis]', collapse=3) do i = 0, m do j = 0, j do k = 0, p @@ -1121,7 +1121,7 @@ contains end do end do end do - #:endcall GPU_PARALLEL_LOOP + $:END_GPU_PARALLEL_LOOP() ! write the final moment assuming the points are all uniform density patch_ib(ib_marker)%moment = moment * patch_ib(ib_marker)%mass / (count * cell_volume) From f25e61df4ce75fd8ec5879c2af72bf81066986b2 Mon Sep 17 00:00:00 2001 From: danieljvickers Date: Wed, 3 Dec 2025 16:03:25 -0500 Subject: [PATCH 14/23] Finished invisid case --- src/simulation/m_ibm.fpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 220e10e027..2f056c03c7 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1010,6 +1010,7 @@ contains torques = 0._wp ! TODO :: This is currently only valid inviscid, and needs to be extended to add viscocity + $:GPU_PARALLEL_LOOP(private='[ib_idx,radial_vector,pressure_divergence,cell_volume]', copy='[forces,torques]', copyin='[ib_markers]', collapse=3) do i = 0, m do j = 0, n do k = 0, p @@ -1038,6 +1039,11 @@ contains end do end do end do + $:END_GPU_PARALLEL_LOOP() + + ! reduce the forces across all MPI ranks + call s_mpi_allreduce_sum(forces, forces) + call s_mpi_allreduce_sum(torques, torques) ! apply the summed forces do i = 1, num_ibs From c82a623bc4aec13b6349e4e2eadc5092f2dfd3de Mon Sep 17 00:00:00 2001 From: danieljvickers Date: Wed, 3 Dec 2025 16:24:13 -0500 Subject: [PATCH 15/23] Resolved some MPI errors and added a test of a particle in a cross flow --- .../2D_mibm_cylinder_in_cross_flow/case.py | 105 ++++++++++++ src/common/m_mpi_common.fpp | 24 +++ src/simulation/m_ibm.fpp | 4 +- tests/127A967A/golden-metadata.txt | 159 ++++++++++++++++++ tests/127A967A/golden.txt | 11 ++ 5 files changed, 301 insertions(+), 2 deletions(-) create mode 100644 examples/2D_mibm_cylinder_in_cross_flow/case.py create mode 100644 tests/127A967A/golden-metadata.txt create mode 100644 tests/127A967A/golden.txt diff --git a/examples/2D_mibm_cylinder_in_cross_flow/case.py b/examples/2D_mibm_cylinder_in_cross_flow/case.py new file mode 100644 index 0000000000..dd230118dc --- /dev/null +++ b/examples/2D_mibm_cylinder_in_cross_flow/case.py @@ -0,0 +1,105 @@ +import json +import math + +Mu = 1.84e-05 +gam_a = 1.4 + +# Configuring case dictionary +print( + json.dumps( + { + # Logistics + "run_time_info": "T", + # Computational Domain Parameters + # For these computations, the cylinder is placed at the (0,0,0) + # domain origin. + # axial direction + "x_domain%beg": 0.0e00, + "x_domain%end": 6.0e-03, + # r direction + "y_domain%beg": 0.0e00, + "y_domain%end": 6.0e-03, + "cyl_coord": "F", + "m": 200, + "n": 200, + "p": 0, + "dt": 6.0e-6, + "t_step_start": 0, + "t_step_stop": 10000, # 10000, + "t_step_save": 100, + # Simulation Algorithm Parameters + # Only one patches are necessary, the air tube + "num_patches": 1, + # Use the 5 equation model + "model_eqns": 2, + "alt_soundspeed": "F", + # One fluids: air + "num_fluids": 1, + # time step + "mpp_lim": "F", + # Correct errors when computing speed of sound + "mixture_err": "T", + # Use TVD RK3 for time marching + "time_stepper": 3, + # Use WENO5 + "weno_order": 5, + "weno_eps": 1.0e-16, + "weno_Re_flux": "T", + "weno_avg": "T", + "avg_state": 2, + "mapped_weno": "T", + "null_weights": "F", + "mp_weno": "T", + "riemann_solver": 2, + "wave_speeds": 1, + # We use ghost-cell + "bc_x%beg": -3, + "bc_x%end": -3, + "bc_y%beg": -3, + "bc_y%end": -3, + # Set IB to True and add 1 patch + "ib": "T", + "num_ibs": 1, + "viscous": "T", + # Formatted Database Files Structure Parameters + "format": 1, + "precision": 2, + "prim_vars_wrt": "T", + "E_wrt": "T", + "parallel_io": "T", + # Patch: Constant Tube filled with air + # Specify the cylindrical air tube grid geometry + "patch_icpp(1)%geometry": 3, + "patch_icpp(1)%x_centroid": 3.0e-03, + # Uniform medium density, centroid is at the center of the domain + "patch_icpp(1)%y_centroid": 3.0e-03, + "patch_icpp(1)%length_x": 6.0e-03, + "patch_icpp(1)%length_y": 6.0e-03, + # Specify the patch primitive variables + "patch_icpp(1)%vel(1)": 0.05e00, + "patch_icpp(1)%vel(2)": 0.0e00, + "patch_icpp(1)%pres": 1.0e00, + "patch_icpp(1)%alpha_rho(1)": 1.0e00, + "patch_icpp(1)%alpha(1)": 1.0e00, + # Patch: Cylinder Immersed Boundary + "patch_ib(1)%geometry": 2, + "patch_ib(1)%x_centroid": 1.5e-03, + "patch_ib(1)%y_centroid": 4.5e-03, + "patch_ib(1)%radius": 0.3e-03, + "patch_ib(1)%slip": "F", + "patch_ib(1)%moving_ibm": 2, + "patch_ib(1)%vel(2)": -0.1, + "patch_ib(1)%angles(1)": 0.0, # x-axis rotation in radians + "patch_ib(1)%angles(2)": 0.0, # y-axis rotation + "patch_ib(1)%angles(3)": 0.0, # z-axis rotation + "patch_ib(1)%angular_vel(1)": 0.0, # x-axis rotational velocity in radians per second + "patch_ib(1)%angular_vel(2)": 0.0, # y-axis rotation + "patch_ib(1)%angular_vel(3)": 0.0, # z-axis rotation + "patch_ib(1)%mass": 0.0001, # z-axis rotation + # Fluids Physical Parameters + "fluid_pp(1)%gamma": 1.0e00 / (gam_a - 1.0e00), # 2.50(Not 1.40) + "fluid_pp(1)%pi_inf": 0, + "fluid_pp(1)%Re(1)": 2500000, + } + ) +) diff --git a/src/common/m_mpi_common.fpp b/src/common/m_mpi_common.fpp index 905b21570a..2f2978fdc4 100644 --- a/src/common/m_mpi_common.fpp +++ b/src/common/m_mpi_common.fpp @@ -472,6 +472,30 @@ contains end subroutine s_mpi_allreduce_sum + !> This subroutine follows the behavior of the s_mpi_allreduce_sum subroutine + !> with the additional feature that it reduces an array of vectors. + impure subroutine s_mpi_allreduce_vectors_sum(var_loc, var_glb, num_vectors, vector_length) + + integer, intent(in) :: num_vectors, vector_length + real(wp), dimension(:, :), intent(in) :: var_loc + real(wp), dimension(:, :), intent(out) :: var_glb + +#ifdef MFC_MPI + integer :: ierr !< Generic flag used to identify and report MPI errors + + ! Performing the reduction procedure + if (loc(var_loc) == loc(var_glb)) then + call MPI_Allreduce(MPI_IN_PLACE, var_glb, num_vectors*vector_length, & + mpi_p, MPI_SUM, MPI_COMM_WORLD, ierr) + else + call MPI_Allreduce(var_loc, var_glb, num_vectors*vector_length, & + mpi_p, MPI_SUM, MPI_COMM_WORLD, ierr) + end if + +#endif + + end subroutine s_mpi_allreduce_vectors_sum + !> The following subroutine takes the input local variable !! from all processors and reduces to the sum of all !! values. The reduced variable is recorded back onto the diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 2f056c03c7..cc66cf368d 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1042,8 +1042,8 @@ contains $:END_GPU_PARALLEL_LOOP() ! reduce the forces across all MPI ranks - call s_mpi_allreduce_sum(forces, forces) - call s_mpi_allreduce_sum(torques, torques) + call s_mpi_allreduce_vectors_sum(forces, forces, num_ibs, 3) + call s_mpi_allreduce_vectors_sum(torques, torques, num_ibs, 3) ! apply the summed forces do i = 1, num_ibs diff --git a/tests/127A967A/golden-metadata.txt b/tests/127A967A/golden-metadata.txt new file mode 100644 index 0000000000..e9ef6dfa32 --- /dev/null +++ b/tests/127A967A/golden-metadata.txt @@ -0,0 +1,159 @@ +This file was created on 2025-12-03 16:23:35.209708. + +mfc.sh: + + Invocation: test --generate --only 127A967A + Lock: mpi=Yes & gpu=No & debug=No & gcov=No & unified=No & single=No & mixed=No & fastmath=No + Git: f25e61df4ce75fd8ec5879c2af72bf81066986b2 on forces-via-volume-integrals (dirty) + +simulation: + + CMake Configuration: + + CMake v3.28.3 on schwarzschild + + C : GNU v13.3.0 (/usr/bin/cc) + Fortran : GNU v13.3.0 (/usr/bin/gfortran) + + PRE_PROCESS : OFF + SIMULATION : ON + POST_PROCESS : OFF + SYSCHECK : OFF + DOCUMENTATION : OFF + ALL : OFF + + MPI : ON + OpenACC : OFF + OpenMP : OFF + + Fypp : /home/dan/Documents/repos/MFC/build/venv/bin/fypp + Doxygen : + + Build Type : Release + + Configuration Environment: + + CC : /usr/bin/cc + CXX : /usr/bin/c++ + FC : /usr/bin/gfortran + OMPI_CC : + OMPI_CXX : + OMPI_FC : + +syscheck: + + CMake Configuration: + + CMake v3.28.3 on schwarzschild + + C : GNU v13.3.0 (/usr/bin/cc) + Fortran : GNU v13.3.0 (/usr/bin/gfortran) + + PRE_PROCESS : OFF + SIMULATION : OFF + POST_PROCESS : OFF + SYSCHECK : ON + DOCUMENTATION : OFF + ALL : OFF + + MPI : ON + OpenACC : OFF + OpenMP : OFF + + Fypp : /home/dan/Documents/repos/MFC/build/venv/bin/fypp + Doxygen : + + Build Type : Release + + Configuration Environment: + + CC : /usr/bin/cc + CXX : /usr/bin/c++ + FC : /usr/bin/gfortran + OMPI_CC : + OMPI_CXX : + OMPI_FC : + +pre_process: + + CMake Configuration: + + CMake v3.28.3 on schwarzschild + + C : GNU v13.3.0 (/usr/bin/cc) + Fortran : GNU v13.3.0 (/usr/bin/gfortran) + + PRE_PROCESS : ON + SIMULATION : OFF + POST_PROCESS : OFF + SYSCHECK : OFF + DOCUMENTATION : OFF + ALL : OFF + + MPI : ON + OpenACC : OFF + OpenMP : OFF + + Fypp : /home/dan/Documents/repos/MFC/build/venv/bin/fypp + Doxygen : + + Build Type : Release + + Configuration Environment: + + CC : /usr/bin/cc + CXX : /usr/bin/c++ + FC : /usr/bin/gfortran + OMPI_CC : + OMPI_CXX : + OMPI_FC : + +CPU: + + CPU Info: + From lscpu + Architecture: x86_64 + CPU op-mode(s): 32-bit, 64-bit + Address sizes: 46 bits physical, 48 bits virtual + Byte Order: Little Endian + CPU(s): 20 + On-line CPU(s) list: 0-19 + Vendor ID: GenuineIntel + Model name: 12th Gen Intel(R) Core(TM) i7-12700K + CPU family: 6 + Model: 151 + Thread(s) per core: 2 + Core(s) per socket: 12 + Socket(s): 1 + Stepping: 2 + CPU(s) scaling MHz: 23% + CPU max MHz: 5100.0000 + CPU min MHz: 800.0000 + BogoMIPS: 7219.20 + Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault cat_l2 cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdt_a rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize pconfig arch_lbr ibt flush_l1d arch_capabilities + Virtualization: VT-x + L1d cache: 512 KiB (12 instances) + L1i cache: 512 KiB (12 instances) + L2 cache: 12 MiB (9 instances) + L3 cache: 25 MiB (1 instance) + NUMA node(s): 1 + NUMA node0 CPU(s): 0-19 + Vulnerability Gather data sampling: Not affected + Vulnerability Ghostwrite: Not affected + Vulnerability Indirect target selection: Not affected + Vulnerability Itlb multihit: Not affected + Vulnerability L1tf: Not affected + Vulnerability Mds: Not affected + Vulnerability Meltdown: Not affected + Vulnerability Mmio stale data: Not affected + Vulnerability Reg file data sampling: Mitigation; Clear Register File + Vulnerability Retbleed: Not affected + Vulnerability Spec rstack overflow: Not affected + Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl + Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization + Vulnerability Spectre v2: Mitigation; Enhanced / Automatic IBRS; IBPB conditional; PBRSB-eIBRS SW sequence; BHI BHI_DIS_S + Vulnerability Srbds: Not affected + Vulnerability Tsa: Not affected + Vulnerability Tsx async abort: Not affected + Vulnerability Vmscape: Mitigation; IBPB before exit to userspace + diff --git a/tests/127A967A/golden.txt b/tests/127A967A/golden.txt new file mode 100644 index 0000000000..c7c0f61d09 --- /dev/null +++ b/tests/127A967A/golden.txt @@ -0,0 +1,11 @@ +D/cons.1.00.000000.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +D/cons.1.00.000050.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000005 1.00000000000043 1.00000000000261 1.00000000005991 1.00000000248518 1.00000002891095 1.00000026882451 1.00000225617394 1.00000884792178 1.00001381251715 1.00000442107632 1.00000090524213 1.00000002136653 0.99999999546377 0.99999999893533 0.99999999995145 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000003 1.00000000000025 1.00000000000165 1.00000000006775 1.00000000311545 1.00000003919153 1.00000042327453 1.00000389695477 1.0000299224979 1.00011251738463 1.00016108568677 1.00004995448232 1.00000701500206 0.99999977328458 0.99999986720773 0.99999997888409 0.99999999812759 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000013 1.00000000000066 1.00000000004877 1.00000000281132 1.00000003922022 1.00000047144728 1.0000048338705 1.00004313482227 1.00028267163437 1.00098217662524 1.00119756026515 1.00033293548093 1.00002796152015 0.99999251739276 0.99999777561616 0.99999965409751 0.999999972938 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000006 1.00000000000032 1.00000000002151 1.00000000197213 1.00000003153099 1.00000041216788 1.00000466201002 1.00004526214098 1.00039602553925 1.00236897793966 1.00829077279609 1.00803716668009 1.0012336133645 0.99990404851472 0.9998894039554 0.99997304475007 0.99999580043603 0.99999968114213 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000006 1.00000000000036 1.00000000001098 1.00000000128314 1.00000002169107 1.00000031053229 1.00000389658963 1.00004149465445 1.00035108459867 1.00310391415479 1.01237625823015 1.02270779084853 1.02146340439532 1.00159975894143 0.99648509808045 0.99864509556485 0.99972173961085 0.99996786008147 0.99999723366684 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000006 1.00000000000021 1.00000000038078 1.00000000756513 1.00000011427859 1.00000152610866 1.00001744568644 1.00016715764456 1.00126758438498 1.01089869073986 1.0329987591769 1.05537681012496 1.01398026748741 0.98021135982092 0.98394127065626 0.99426220553619 0.9989848778295 0.99986918000423 0.99998808237467 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000008 1.0000000000052 1.00000000123968 1.00000002043417 1.00000030101131 1.00000384483118 1.00004148383964 1.00036998671585 1.00270329156515 1.0182745952392 1.0429858419826 1.04288001861747 0.97251764332204 0.97260279653848 0.96606994639218 0.98504831802971 0.99671869842284 0.99960958044817 0.99996462984825 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000005 1.0000000000002 1.00000000041109 1.00000000793535 1.00000011729845 1.00000152562117 1.0000169058679 1.00015560978487 1.00122206176224 1.00751668769553 1.02100853122276 1.02115517537675 0.97629076231193 0.94867070481921 0.97282062278297 0.99042400342104 0.99867015353981 0.99981924427493 0.99998396655393 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000006 1.00000000000039 1.00000000001777 1.00000000153588 1.00000002470413 1.00000034232239 1.00000409551591 1.00004054030438 1.00034075074653 1.001800872542 1.00530494198284 0.99857503572385 0.97980620798832 0.97985898021093 0.98908818318969 0.99687966419197 0.99961583171216 0.99995262326793 0.99999605068767 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000008 1.0000000000004 1.00000000003141 1.00000000222263 1.00000003314271 1.00000040240203 1.00000417247546 1.00003697053747 1.0001803552889 1.00034612854947 0.99888293348939 0.99125330713514 0.99085787318385 0.99736139537672 0.99953017237619 0.9999444354577 0.99999412292482 0.99999953622203 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000002 1.00000000000016 1.00000000000068 1.00000000007296 1.00000000335887 1.00000004410955 1.00000051785492 1.00000367990448 1.00001433663755 0.99999296951462 0.99967140114099 0.99837673463497 0.99875618735483 0.99966190211922 0.99994549209743 0.9999936045351 0.99999935548774 0.99999995070379 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000004 1.0000000000003 1.00000000000244 1.00000000007826 1.00000000331435 1.00000003897845 1.00000027115622 1.00000080924826 0.99999428640248 0.99993165532868 0.99978490662985 0.99985263203419 0.99996069203939 0.99999459632103 0.99999938961381 0.99999994168104 0.99999999570553 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000007 1.00000000000057 1.00000000000424 1.00000000012021 1.00000000234417 1.00000001584719 1.00000002129075 0.99999909959838 0.99999276425904 0.99997493163247 0.99998492498809 0.99999625231186 0.9999995422103 0.99999994990244 0.99999999538895 0.99999999984335 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000007 1.00000000000059 1.00000000000433 1.00000000007942 1.00000000075316 0.99999999785607 0.99999988314838 0.99999929457147 0.99999759519569 0.99999868820404 0.99999969578943 0.99999996579012 0.99999999638874 0.99999999985475 0.99999999999625 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000005 1.00000000000037 1.00000000000063 0.99999999999912 0.99999999970258 0.99999999079095 0.99999994193503 0.99999980395626 0.99999990087564 0.99999997844594 0.99999999781946 0.99999999991259 0.999999999998 0.99999999999941 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000004 1.00000000000004 0.99999999999921 0.99999999998809 0.99999999947583 0.99999999577828 0.99999998604266 0.99999999332387 0.99999999868327 0.99999999996903 0.99999999999951 0.9999999999997 0.99999999999992 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999991 0.99999999999914 0.99999999999595 0.99999999981896 0.99999999914782 0.9999999996714 0.99999999998964 0.9999999999998 0.99999999999988 0.99999999999995 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999989 0.99999999999949 0.99999999999962 0.99999999999994 0.99999999999987 0.99999999999968 0.99999999999996 0.99999999999998 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999999 0.9999999999999 0.9999999999999 0.99999999999997 0.99999999999996 0.99999999999996 0.99999999999999 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999999 0.99999999999998 0.99999999999999 0.99999999999999 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +D/cons.2.00.000000.dat 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +D/cons.2.00.000050.dat 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999998 0.04999999999985 0.04999999999852 0.04999999995641 0.0499999983967 0.04999997952971 0.04999978191689 0.04999796506702 0.04999025889306 0.04998169706106 0.04999611085642 0.04999938528897 0.05000003406488 0.05000000856657 0.05000000100545 0.05000000001462 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999998 0.04999999999991 0.04999999999923 0.04999999996488 0.04999999803882 0.04999997229677 0.04999967269375 0.04999665422966 0.04997168524811 0.04987327254808 0.04979311624675 0.04995397841543 0.04999594739398 0.05000077788507 0.0500001639964 0.05000002052222 0.05000000142172 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999997 0.04999999999991 0.04999999998695 0.04999999844259 0.04999997623937 0.04999968873807 0.0499965010374 0.04996504309478 0.04973820835164 0.04886555932451 0.04843778808391 0.04966225373664 0.05002701523979 0.05001309247728 0.0500022467731 0.05000026951288 0.05000001831563 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999997 0.04999999999993 0.04999999999827 0.04999999908656 0.04999998428982 0.04999977563247 0.04999723010338 0.04997053645753 0.04970923688668 0.04791285240187 0.04046420333642 0.03907204776879 0.04957555210315 0.05051144009196 0.05015540600603 0.05002287714675 0.05000246467859 0.05000017642509 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999998 0.04999999999169 0.04999999947116 0.04999999119532 0.04999986124473 0.04999804330651 0.04997620856266 0.04976347728702 0.04755588730479 0.03688418211879 0.01437060350092 0.02045694202298 0.05422678992115 0.05645452469339 0.05155752111215 0.05020233245261 0.05001961721525 0.05000145488255 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999994 0.04999999987414 0.04999999764279 0.049999962487 0.04999945230823 0.04999309608248 0.0499266930397 0.04936811276406 0.04440131390219 0.02711307233116 0.01470605861931 0.00087507308674 0.04613735708056 0.06908811263212 0.05544404130184 0.05072523836215 0.05007832371291 0.05000602983079 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000025 0.050000000056 0.05000000091518 0.05000001346286 0.05000017294338 0.05000189222029 0.05001739310026 0.05013022588402 0.05111953845441 0.05069538395107 0.00090001380328 0.00083929051022 0.00083936399812 0.05228187392241 0.05012122851237 0.04995499547067 0.0499919416536 0.04999903814445 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000009 0.0500000001691 0.05000000315234 0.05000004921188 0.05000070158163 0.05000864152319 0.05009005344984 0.05076081742011 0.05691156993021 0.07660369574895 0.05047641812066 0.0008425467421 0.02029819842763 0.03199499351858 0.04415345893543 0.04911822882368 0.04990431464006 0.04999245866319 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000005 0.05000000001208 0.05000000075044 0.05000001240977 0.05000018666652 0.05000249132331 0.05002826113878 0.05027356434779 0.05211426405864 0.05984506837099 0.05371160985389 0.02079466022408 0.01733300719257 0.03791279186699 0.04723145096985 0.04970555863263 0.04996803051822 0.04999760643662 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000005 0.05000000000011 0.0500000000101 0.05000000129503 0.05000002126439 0.0500002882534 0.05000333083001 0.05003513661765 0.05023318838838 0.05095275596936 0.04991870163798 0.03660642996376 0.03896622693327 0.04747990834842 0.04960725690713 0.04995782245821 0.0499959550632 0.0499997084973 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000006 0.05000000000015 0.05000000002912 0.05000000220327 0.05000003139675 0.05000038524923 0.05000377343971 0.05002264459563 0.05006307436213 0.04968943232059 0.04768905480554 0.04844277043544 0.04966184466254 0.04995016077492 0.04999470130797 0.04999951229451 0.04999996574246 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000003 0.05000000000014 0.05000000000127 0.05000000005654 0.05000000265932 0.05000003604149 0.05000031792185 0.05000162231062 0.05000073863141 0.04993019223311 0.04969990123289 0.04982000925175 0.04995949705861 0.04999482397968 0.04999946848261 0.04999995327899 0.04999999687019 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000004 0.05000000000028 0.05000000000267 0.05000000008561 0.05000000249016 0.05000002120161 0.05000008543336 0.04999942946791 0.04999252765673 0.04996559869146 0.04998179773187 0.04999605999322 0.04999954734343 0.04999995482017 0.04999999625434 0.04999999988223 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000006 0.05000000000055 0.05000000000221 0.0500000000624 0.05000000113051 0.05000000270023 0.04999989932472 0.04999925232776 0.0499967450211 0.04999842667202 0.04999967545278 0.04999996543917 0.04999999672522 0.04999999985538 0.04999999999801 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000006 0.05000000000045 0.0500000000012 0.04999999999997 0.04999999978849 0.04999999170712 0.04999993680487 0.04999973756309 0.04999988169797 0.0499999768142 0.04999999773868 0.04999999989704 0.0499999999987 0.04999999999946 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000004 0.05000000000017 0.04999999999968 0.04999999998615 0.04999999948328 0.04999999539019 0.04999998154085 0.04999999211345 0.04999999855465 0.0499999999601 0.04999999999938 0.04999999999966 0.04999999999992 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.04999999999995 0.04999999999907 0.04999999999818 0.04999999980508 0.04999999888801 0.04999999960797 0.04999999999297 0.04999999999979 0.04999999999987 0.04999999999995 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999988 0.04999999999938 0.04999999999949 0.04999999999973 0.04999999999979 0.04999999999962 0.04999999999996 0.04999999999998 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999989 0.04999999999987 0.04999999999996 0.04999999999995 0.04999999999995 0.04999999999999 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999998 0.04999999999999 0.04999999999999 0.04999999999999 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +D/cons.3.00.000000.dat 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +D/cons.3.00.000050.dat -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -5e-14 -3.9e-13 -1.67e-12 -3.238e-11 -1.602e-09 -1.685203e-08 -1.3879433e-07 -1.20253567e-06 -2.48090056e-06 4.8065816e-07 2.6775886e-06 6.2848626e-07 5.263255e-08 1.95458e-09 -5.4975e-10 -4.098e-11 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -3e-14 -2.6e-13 -1.37e-12 -5.46e-11 -2.17158e-09 -2.666603e-08 -2.6752521e-07 -2.18830974e-06 -1.752609875e-05 -3.211928825e-05 7.66511127e-06 3.647123626e-05 7.51967815e-06 4.9668817e-07 -1.402219e-08 -1.067843e-08 -9.1592e-10 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -2e-14 -1.4e-13 -7.6e-13 -5.087e-11 -2.22457e-09 -3.063205e-08 -3.5114471e-07 -3.39969244e-06 -2.750061072e-05 -0.00018648476564 -0.00027706630843 9.528364695e-05 0.0003330373763 6.687850733e-05 3.2919989e-06 -1.1214102e-06 -2.2039798e-07 -1.580863e-08 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -3.4e-13 -2.576e-11 -1.8256e-09 -2.796068e-08 -3.5602536e-07 -3.91305267e-06 -3.657325698e-05 -0.00029593131579 -0.00179746420834 -0.00240061641215 0.00159538828075 0.00252336445901 0.00038246941389 4.94108514e-06 -2.013154284e-05 -3.59999296e-06 -2.4640266e-07 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -4.5e-13 -6.37e-12 -1.30309e-09 -2.128751e-08 -3.015354e-07 -3.69717504e-06 -3.81679221e-05 -0.00030819093772 -0.00264159178646 -0.00918696605728 -0.00894502422236 0.00790304543832 0.01264497615098 0.00118139905033 -0.00068990604601 -0.00022691359074 -2.794972064e-05 -2.31274576e-06 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -7e-14 -3e-13 -4.2078e-10 -8.27975e-09 -1.2572284e-07 -1.67158865e-06 -1.902987943e-05 -0.00018185379269 -0.00137772693871 -0.01213731773214 -0.0400116682209 -0.05298121495587 -0.1008045121587 -0.03345851742991 -0.0121939798663 -0.00569391521925 -0.00093531569062 -0.00012955329572 -1.138967415e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -9e-14 -6.51e-12 -1.53741e-09 -2.59862e-08 -3.863481e-07 -4.99058985e-06 -5.467985609e-05 -0.00049818810497 -0.0037464779014 -0.02621611747289 -0.07038919342009 -0.10367757133706 -0.09668251912213 -0.09669098460091 -0.0442989083387 -0.02338333186679 -0.00450880022162 -0.00052879220748 -4.894860962e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -7e-14 -2.8e-13 -4.6039e-10 -8.7796e-09 -1.2999687e-07 -1.67723378e-06 -1.840823211e-05 -0.00016761865249 -0.00130118300606 -0.00833918749171 -0.01798631430591 -0.04032600790647 -0.09705762249572 -0.04967291675366 -0.03372943932347 -0.01048973693236 -0.00142846475316 -0.0001999938414 -1.738735182e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -4.8e-13 -1.298e-11 -1.56446e-09 -2.48467e-08 -3.3932365e-07 -3.9442354e-06 -3.726442649e-05 -0.00029614138144 -0.00115164241236 0.00100102189618 0.01253987189686 0.00539062607243 -0.00901288704113 -0.00876673598871 -0.0026601678922 -0.00033376428405 -4.401176322e-05 -3.49810397e-06 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -8e-14 -4.6e-13 -3.392e-11 -2.01121e-09 -2.84468e-08 -3.2460469e-07 -3.08366754e-06 -2.646324632e-05 -5.620222336e-05 0.00042622892921 0.00311887118677 0.00194634041412 -0.00283639975938 -0.00209858305702 -0.00035444153341 -4.528772689e-05 -5.06617314e-06 -3.7266019e-07 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -3e-14 -1.7e-13 -8.1e-13 -7.562e-11 -2.69897e-09 -3.5334e-08 -4.0434199e-07 -2.3295561e-06 2.16260429e-06 7.769877415e-05 0.00044554496059 0.00013680966491 -0.00037923180177 -0.00023783432061 -3.549254234e-05 -4.57215344e-06 -4.9449213e-07 -3.457382e-08 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -4e-14 -2.9e-13 -2.1e-12 -5.735e-11 -2.09036e-09 -2.262854e-08 -1.1067959e-07 5.1652494e-07 9.72943745e-06 5.266275082e-05 1.053522087e-05 -4.549812061e-05 -2.423801213e-05 -3.11928838e-06 -3.9561964e-07 -4.097067e-08 -2.67848e-09 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -5.2e-13 -3.22e-12 -9.174e-11 -1.36949e-09 -1.14039e-09 5.778961e-08 9.2516025e-07 5.01145346e-06 9.1222982e-07 -4.56887504e-06 -2.06191627e-06 -2.4019976e-07 -2.995784e-08 -2.91654e-09 -9.48e-11 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -3e-13 -3.25e-12 -6.422e-11 1.0899e-10 5.92543e-09 7.997296e-08 4.0541908e-07 6.47887e-08 -3.8675841e-07 -1.507329e-07 -1.65617e-08 -2.00472e-09 -6.73e-11 -3.06e-12 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -2e-14 -1e-13 1.4e-13 1.6e-12 2.8909e-10 5.53166e-09 2.958209e-08 3.83231e-09 -2.821985e-08 -9.97116e-09 -1.01878e-09 -2.377e-11 -1.56e-12 -2.6e-13 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 1.1e-13 9.2e-13 1.43e-12 2.8934e-10 2.0374e-09 1.7924e-10 -1.91671e-09 -5.905e-10 -3.86e-12 -7e-14 -9e-14 -2e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 1e-13 2.9e-13 3.99e-12 8.751e-11 1.344e-11 -9.66e-11 -8.07e-12 -6e-14 -2e-14 -2e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 6e-14 1e-13 1.7e-13 4e-14 -2.9e-13 -7e-14 -3e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 1e-14 1e-14 -1e-14 -0.0 -0.0 -1e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 -0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 +D/cons.4.00.000000.dat 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 +D/cons.4.00.000050.dat 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000019 2.50125000000149 2.50125000000905 2.50125000020742 2.50125000861485 2.50125010012868 2.50125092964586 2.50125779206062 2.50128046994393 2.50129741234648 2.50126527384633 2.50125313648267 2.50125007645941 2.50124998455718 2.50124999632525 2.50124999983087 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000012 2.50125000000088 2.50125000000572 2.50125000023524 2.50125001081615 2.50125013575056 2.5012514645753 2.5012634672308 2.50135327814951 2.50163737326689 2.50180334053059 2.50142248366489 2.50127434126137 2.50124924567565 2.50124954358604 2.50124992713508 2.50124999351221 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000005 2.50125000000047 2.50125000000232 2.5012500001699 2.50125000977089 2.50125013603634 2.5012516339093 2.50126673761587 2.50139917494125 2.50222610690555 2.50463240568427 2.50536611596164 2.50239823638685 2.50134919274599 2.50122447534771 2.50124232979529 2.50124880325317 2.50124990622461 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000003 2.50125000000021 2.50125000000112 2.50125000007517 2.50125000685973 2.50125010953985 2.50125143084955 2.5012661727673 2.50140689283084 2.50262141896192 2.50944673722095 2.52994673807251 2.528986377352 2.50555192609895 2.50094076806304 2.50087087695124 2.5011568361814 2.50123543005918 2.50124889322013 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.5012500000002 2.50125000000126 2.50125000003799 2.50125000446298 2.50125007547528 2.50125107954332 2.50126353540378 2.50139399440079 2.5024668102115 2.51200778981069 2.5441993486861 2.58036697957547 2.5761670759855 2.50723336359976 2.48935137126082 2.49659228124622 2.50028671734946 2.50113853381635 2.50124039405963 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.5012500000002 2.50125000000075 2.50125000132597 2.50125002635609 2.50125039793846 2.50125531209206 2.50131069383499 2.50183125242162 2.50565717320287 2.53934669061043 2.61780862356836 2.69933132793812 2.55485517094515 2.43497252200529 2.44653640253991 2.48151815101293 2.49773696872863 2.50079625235942 2.50120860516527 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000003 2.50125000000028 2.5012500000182 2.50125000434012 2.50125007153435 2.50125105382605 2.50126346079163 2.50139524256898 2.50254581648997 2.51073677161098 2.56610523926074 2.65768660392064 2.65880959978582 2.41047158327002 2.41106472868149 2.38625325471017 2.44960130899801 2.48980101389211 2.4998841196465 2.5011262067898 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.50125000000019 2.50125000000069 2.50125000144677 2.50125002791756 2.50125041285163 2.50125537284517 2.50130958235193 2.50179900747008 2.50556734382904 2.52802775493076 2.57717913229549 2.57864147003224 2.42300348704699 2.3255170508452 2.40681498877393 2.46763936033499 2.49655733092353 2.50061288441882 2.50119352687678 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.5012500000002 2.50125000000137 2.50125000006276 2.50125000541491 2.50125008705381 2.50125120703639 2.50126445379924 2.50139325735607 2.50245611410893 2.50766412552353 2.52043420731202 2.49667247303931 2.43043797109993 2.43033312835882 2.46269285383627 2.49021346842436 2.49989147540614 2.50108264763972 2.50123606271224 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.50125000000029 2.50125000000141 2.5012500001105 2.50125000784542 2.50125011702333 2.5012514223186 2.50126476506004 2.50138111223633 2.5018928361204 2.50251205873859 2.49735179322433 2.47019838289855 2.46890334481788 2.49190686838901 2.49958710649339 2.50105349350361 2.50122923547577 2.5012483627831 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000008 2.50125000000056 2.5012500000024 2.50125000025974 2.50125001186173 2.50125015589578 2.50125183110637 2.50126306378461 2.50130129398167 2.50122858825548 2.50008489949827 2.49546282696764 2.49682448684247 2.50005050747356 2.50105680700469 2.5012273590531 2.50124772062979 2.50124982581343 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000015 2.50125000000106 2.50125000000838 2.50125000028106 2.50125001172982 2.50125013817773 2.50125096460355 2.50125291248269 2.5012300469346 2.50100739722733 2.50048266610527 2.50072548421163 2.50111045089317 2.50123083517498 2.50124783783764 2.5012497936218 2.50124998481849 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.50125000000026 2.501250000002 2.50125000001491 2.50125000042879 2.501250008326 2.50125005650423 2.50125007876265 2.50124682117098 2.50122431047049 2.50116057481646 2.50119634710122 2.50123669082792 2.50124837567717 2.50124982246344 2.50124998368045 2.50124999944159 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.50125000000026 2.50125000000208 2.5012500000151 2.50125000028432 2.50125000269466 2.50124999263487 2.50124958613231 2.50124749450129 2.50124142347308 2.50124533169626 2.50124891941722 2.50124987858141 2.5012499872019 2.50124999948039 2.50124999998684 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000019 2.50125000000131 2.5012500000021 2.50124999999692 2.50124999894883 2.50124996736495 2.50124979368705 2.50124930097167 2.50124964727483 2.50124992342969 2.50124999225766 2.50124999968525 2.50124999999299 2.5012499999979 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000013 2.50125000000015 2.5012499999972 2.50124999995763 2.50124999813591 2.50124998499999 2.50124995024563 2.50124997624893 2.50124999531872 2.50124999988657 2.5012499999983 2.50124999999894 2.50124999999972 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000002 2.50124999999968 2.50124999999694 2.50124999998585 2.50124999935226 2.50124999695871 2.50124999882667 2.50124999996222 2.50124999999931 2.50124999999957 2.50124999999983 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999999 2.5012499999996 2.50124999999819 2.50124999999872 2.50124999999982 2.50124999999959 2.50124999999891 2.50124999999984 2.50124999999994 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999995 2.50124999999966 2.50124999999965 2.50124999999988 2.50124999999986 2.50124999999984 2.50124999999998 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999998 2.50124999999994 2.50124999999998 2.50124999999997 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 +D/cons.5.00.000000.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +D/cons.5.00.000050.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +D/ib_markers.00.dat 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \ No newline at end of file From 25ee314cf4b9fb15fff69c46386b54d03d5eb2c6 Mon Sep 17 00:00:00 2001 From: danieljvickers Date: Wed, 3 Dec 2025 16:32:33 -0500 Subject: [PATCH 16/23] Added rotation back --- src/simulation/m_time_steppers.fpp | 6 +++--- tests/127A967A/golden-metadata.txt | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index a864921379..39bd0dee6d 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -632,9 +632,9 @@ contains patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3)*dt*(patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) ! update the angular velocity with the torque value - ! patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum - ! call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum - ! patch_ib(i)%angular_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia + patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum + call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum + patch_ib(i)%angular_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia end if ! Update the angle of the IB diff --git a/tests/127A967A/golden-metadata.txt b/tests/127A967A/golden-metadata.txt index e9ef6dfa32..feee1b7e73 100644 --- a/tests/127A967A/golden-metadata.txt +++ b/tests/127A967A/golden-metadata.txt @@ -1,12 +1,12 @@ -This file was created on 2025-12-03 16:23:35.209708. +This file was created on 2025-12-03 16:32:16.223428. mfc.sh: Invocation: test --generate --only 127A967A Lock: mpi=Yes & gpu=No & debug=No & gcov=No & unified=No & single=No & mixed=No & fastmath=No - Git: f25e61df4ce75fd8ec5879c2af72bf81066986b2 on forces-via-volume-integrals (dirty) + Git: c82a623bc4aec13b6349e4e2eadc5092f2dfd3de on forces-via-volume-integrals (clean) -simulation: +pre_process: CMake Configuration: @@ -15,8 +15,8 @@ simulation: C : GNU v13.3.0 (/usr/bin/cc) Fortran : GNU v13.3.0 (/usr/bin/gfortran) - PRE_PROCESS : OFF - SIMULATION : ON + PRE_PROCESS : ON + SIMULATION : OFF POST_PROCESS : OFF SYSCHECK : OFF DOCUMENTATION : OFF @@ -40,7 +40,7 @@ simulation: OMPI_CXX : OMPI_FC : -syscheck: +simulation: CMake Configuration: @@ -50,9 +50,9 @@ syscheck: Fortran : GNU v13.3.0 (/usr/bin/gfortran) PRE_PROCESS : OFF - SIMULATION : OFF + SIMULATION : ON POST_PROCESS : OFF - SYSCHECK : ON + SYSCHECK : OFF DOCUMENTATION : OFF ALL : OFF @@ -74,7 +74,7 @@ syscheck: OMPI_CXX : OMPI_FC : -pre_process: +syscheck: CMake Configuration: @@ -83,10 +83,10 @@ pre_process: C : GNU v13.3.0 (/usr/bin/cc) Fortran : GNU v13.3.0 (/usr/bin/gfortran) - PRE_PROCESS : ON + PRE_PROCESS : OFF SIMULATION : OFF POST_PROCESS : OFF - SYSCHECK : OFF + SYSCHECK : ON DOCUMENTATION : OFF ALL : OFF @@ -126,7 +126,7 @@ CPU: Core(s) per socket: 12 Socket(s): 1 Stepping: 2 - CPU(s) scaling MHz: 23% + CPU(s) scaling MHz: 17% CPU max MHz: 5100.0000 CPU min MHz: 800.0000 BogoMIPS: 7219.20 From 7c70fd404b0fe76d1924d44d420696c063d6df7a Mon Sep 17 00:00:00 2001 From: danieljvickers Date: Wed, 3 Dec 2025 16:35:42 -0500 Subject: [PATCH 17/23] Spelling and formatting --- docs/documentation/case.md | 6 ++-- src/common/m_mpi_common.fpp | 4 +-- src/simulation/m_ibm.fpp | 45 +++++++++++++++--------------- src/simulation/m_time_steppers.fpp | 4 +-- 4 files changed, 29 insertions(+), 30 deletions(-) diff --git a/docs/documentation/case.md b/docs/documentation/case.md index c9e6aa13f0..ef0c0e5034 100644 --- a/docs/documentation/case.md +++ b/docs/documentation/case.md @@ -309,7 +309,7 @@ This is enabled by adding `'elliptic_smoothing': "T",` and `'elliptic_smoothing_ | `model_threshold` | Real | Ray fraction inside the model patch above which the fraction is set to one.| | `moving_ibm` | Integer | Sets the method used for IB movement. | | `vel(i)` | Real | Initial velocity of the moving IB in the i-th direction. | -| `angular_vel(i)` | Real | Initial angular velcoity of the moving IB in the i-th direction. | +| `angular_vel(i)` | Real | Initial angular velocity of the moving IB in the i-th direction. | These parameters should be prepended with `patch_ib(j)%` where $j$ is the patch index. @@ -336,9 +336,9 @@ Additional details on this specification can be found in [The Naca Airfoil Serie - `moving_ibm` sets the method by which movement will be applied to the immersed boundary. Using 0 will result in no movement. Using 1 will result 1-way coupling where the boundary moves at a constant rate and applied forces to the fluid based upon it's own motion. In 1-way coupling, the fluid does not apply forces back onto the IB. -- `vel(i)` is the initial linear velocity of the IB in the x, y, z direction for i=1, 2, 3. When `moving_ibm` equals 1, this velcoity is constant. +- `vel(i)` is the initial linear velocity of the IB in the x, y, z direction for i=1, 2, 3. When `moving_ibm` equals 1, this velocity is constant. -- `angular_vel(i)` is the initial angular velocity of the IB about the x, y, z axes for i=1, 2, 3 in radians per second. When `moving_ibm` equals 1, this angular velcoity is constant. +- `angular_vel(i)` is the initial angular velocity of the IB about the x, y, z axes for i=1, 2, 3 in radians per second. When `moving_ibm` equals 1, this angular velocity is constant. ### 5. Fluid Material’s diff --git a/src/common/m_mpi_common.fpp b/src/common/m_mpi_common.fpp index 2f2978fdc4..414c423963 100644 --- a/src/common/m_mpi_common.fpp +++ b/src/common/m_mpi_common.fpp @@ -486,10 +486,10 @@ contains ! Performing the reduction procedure if (loc(var_loc) == loc(var_glb)) then call MPI_Allreduce(MPI_IN_PLACE, var_glb, num_vectors*vector_length, & - mpi_p, MPI_SUM, MPI_COMM_WORLD, ierr) + mpi_p, MPI_SUM, MPI_COMM_WORLD, ierr) else call MPI_Allreduce(var_loc, var_glb, num_vectors*vector_length, & - mpi_p, MPI_SUM, MPI_COMM_WORLD, ierr) + mpi_p, MPI_SUM, MPI_COMM_WORLD, ierr) end if #endif diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index cc66cf368d..016c80b994 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -202,7 +202,7 @@ contains do j = 0, m do k = 0, n do l = 0, p - if (ib_markers%sf(j,k,l) == patch_id) then + if (ib_markers%sf(j, k, l) == patch_id) then q_prim_vf(E_idx)%sf(j, k, l) = 1._wp end if end do @@ -264,8 +264,8 @@ contains if (patch_ib(patch_id)%moving_ibm == 0) then q_prim_vf(E_idx)%sf(j, k, l) = pres_IP else - ! TODO :: improve for two fluid - q_prim_vf(E_idx)%sf(j, k, l) = pres_IP / (1._wp - 2._wp*abs(levelset%sf(j,k,l,patch_id)*alpha_rho_IP(q)/pres_IP) * dot_product(patch_ib(patch_id)%force/patch_ib(patch_id)%mass, levelset_norm%sf(j,k,l,patch_id,:))) + ! TODO :: improve for two fluid + q_prim_vf(E_idx)%sf(j, k, l) = pres_IP/(1._wp - 2._wp*abs(levelset%sf(j, k, l, patch_id)*alpha_rho_IP(q)/pres_IP)*dot_product(patch_ib(patch_id)%force/patch_ib(patch_id)%mass, levelset_norm%sf(j, k, l, patch_id, :))) end if end do @@ -1019,21 +1019,21 @@ contains if (patch_ib(ib_idx)%moving_ibm == 2) then if (num_dims == 3) then radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, patch_ib(ib_idx)%z_centroid] ! get the vector pointing to the grid cell - else + else radial_vector = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, 0._wp] ! get the vector pointing to the grid cell end if - pressure_divergence(1) = (pressure(i+1, j, k) - pressure(i-1, j, k)) / (2._wp * x_cc(i)) - pressure_divergence(2) = (pressure(i, j+1, k) - pressure(i, j-1, k)) / (2._wp * y_cc(j)) - cell_volume = x_cc(i) * y_cc(j) + pressure_divergence(1) = (pressure(i + 1, j, k) - pressure(i - 1, j, k))/(2._wp*x_cc(i)) + pressure_divergence(2) = (pressure(i, j + 1, k) - pressure(i, j - 1, k))/(2._wp*y_cc(j)) + cell_volume = x_cc(i)*y_cc(j) if (num_dims == 3) then - pressure_divergence(3) = (pressure(i, j, k+1) - pressure(i, j, k-1)) / (2._wp * z_cc(k)) - cell_volume = cell_volume * z_cc(k) + pressure_divergence(3) = (pressure(i, j, k + 1) - pressure(i, j, k - 1))/(2._wp*z_cc(k)) + cell_volume = cell_volume*z_cc(k) else pressure_divergence(3) = 0._wp end if - forces(ib_idx, :) = forces(ib_idx, :) - (pressure_divergence * cell_volume) - torques(ib_idx, :) = torques(ib_idx, :) + (cross_product(radial_vector, pressure_divergence) * cell_volume) + forces(ib_idx, :) = forces(ib_idx, :) - (pressure_divergence*cell_volume) + torques(ib_idx, :) = torques(ib_idx, :) + (cross_product(radial_vector, pressure_divergence)*cell_volume) end if end if end do @@ -1068,9 +1068,9 @@ contains real(wp), dimension(3), optional :: axis !< the axis about which we compute the moment. Only required in 3D. integer, intent(in) :: ib_marker - - real (wp) :: moment, distance_to_axis, cell_volume - real (wp), dimension(3) :: position, closest_point_along_axis, vector_to_axis + + real(wp) :: moment, distance_to_axis, cell_volume + real(wp), dimension(3) :: position, closest_point_along_axis, vector_to_axis integer :: i, j, k, count if (p == 0) then @@ -1080,26 +1080,25 @@ contains patch_ib(ib_marker)%moment = 1._wp return else - axis = axis / sqrt(sum(axis)) + axis = axis/sqrt(sum(axis)) end if - + ! if the IB is in 2D or a 3D sphere, we can compute this exactly if (patch_ib(ib_marker)%geometry == 2) then ! circle - patch_ib(ib_marker)%moment = 0.5 * patch_ib(ib_marker)%mass * (patch_ib(ib_marker)%radius)**2 + patch_ib(ib_marker)%moment = 0.5*patch_ib(ib_marker)%mass*(patch_ib(ib_marker)%radius)**2 elseif (patch_ib(ib_marker)%geometry == 3) then ! rectangle - patch_ib(ib_marker)%moment = patch_ib(i)%mass * (patch_ib(ib_marker)%length_x**2 + patch_ib(ib_marker)%length_y**2) / 6._wp + patch_ib(ib_marker)%moment = patch_ib(i)%mass*(patch_ib(ib_marker)%length_x**2 + patch_ib(ib_marker)%length_y**2)/6._wp elseif (patch_ib(ib_marker)%geometry == 8) then ! sphere - patch_ib(ib_marker)%moment = 0.4 * patch_ib(ib_marker)%mass * (patch_ib(ib_marker)%radius)**2 - + patch_ib(ib_marker)%moment = 0.4*patch_ib(ib_marker)%mass*(patch_ib(ib_marker)%radius)**2 + else ! we do not have an analytic moment of inertia calculation and need to approximate it directly count = 0 moment = 0._wp cell_volume = (x_cc(1) - x_cc(0))*(y_cc(1) - y_cc(0)) ! computed without grid stretching. Update in the loop to perform with stretching if (p /= 0) then - cell_volume = cell_volume * (z_cc(1) - z_cc(0)) + cell_volume = cell_volume*(z_cc(1) - z_cc(0)) end if - $:GPU_PARALLEL_LOOP(private='[position,closest_point_along_axis,vector_to_axis,distance_to_axis]', copy='[moment,count]', copyin='[ib_marker,cell_volume,axis]', collapse=3) do i = 0, m do j = 0, j @@ -1130,7 +1129,7 @@ contains $:END_GPU_PARALLEL_LOOP() ! write the final moment assuming the points are all uniform density - patch_ib(ib_marker)%moment = moment * patch_ib(ib_marker)%mass / (count * cell_volume) + patch_ib(ib_marker)%moment = moment*patch_ib(ib_marker)%mass/(count*cell_volume) $:GPU_UPDATE(device='[patch_ib(ib_marker)%moment]') end if diff --git a/src/simulation/m_time_steppers.fpp b/src/simulation/m_time_steppers.fpp index 39bd0dee6d..ba55861528 100644 --- a/src/simulation/m_time_steppers.fpp +++ b/src/simulation/m_time_steppers.fpp @@ -632,9 +632,9 @@ contains patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3)*dt*(patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4) ! update the angular velocity with the torque value - patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel * patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum + patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel*patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum - patch_ib(i)%angular_vel = patch_ib(i)%angular_vel / patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia + patch_ib(i)%angular_vel = patch_ib(i)%angular_vel/patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia end if ! Update the angle of the IB From 0c221ae4fc148c14a3dd77a9f171db5f9b534d6d Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 4 Dec 2025 10:31:14 -0500 Subject: [PATCH 18/23] Added atomic updates and some code structure --- src/simulation/m_ibm.fpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 016c80b994..2f2e5f8ac0 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1016,15 +1016,19 @@ contains do k = 0, p ib_idx = ib_markers%sf(i, j, k) if (ib_idx /= 0) then ! only need to compute the gradient for cells inside a IB - if (patch_ib(ib_idx)%moving_ibm == 2) then + if (patch_ib(ib_idx)%moving_ibm == 2) then ! make sure that this IB has 2-way coupling enabled if (num_dims == 3) then radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, patch_ib(ib_idx)%z_centroid] ! get the vector pointing to the grid cell else radial_vector = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, 0._wp] ! get the vector pointing to the grid cell end if + + ! use a finite difference to compute the 2D components of the gradient of the pressure and cell volume pressure_divergence(1) = (pressure(i + 1, j, k) - pressure(i - 1, j, k))/(2._wp*x_cc(i)) pressure_divergence(2) = (pressure(i, j + 1, k) - pressure(i, j - 1, k))/(2._wp*y_cc(j)) cell_volume = x_cc(i)*y_cc(j) + + ! add the 3D component, if we are working in 3 dimensions if (num_dims == 3) then pressure_divergence(3) = (pressure(i, j, k + 1) - pressure(i, j, k - 1))/(2._wp*z_cc(k)) cell_volume = cell_volume*z_cc(k) @@ -1032,7 +1036,10 @@ contains pressure_divergence(3) = 0._wp end if + ! Update the force values atmoically to prevent race conditions + $:GPU_ATOMIC(atomic='update') forces(ib_idx, :) = forces(ib_idx, :) - (pressure_divergence*cell_volume) + $:GPU_ATOMIC(atomic='update') torques(ib_idx, :) = torques(ib_idx, :) + (cross_product(radial_vector, pressure_divergence)*cell_volume) end if end if @@ -1051,8 +1058,6 @@ contains patch_ib(i)%torque(:) = matmul(patch_ib(i)%rotation_matrix_inverse, torques(i, :)) ! torques must be computed in the local coordinates of the IB end do - print *, patch_ib(1)%force(1:2) - end subroutine s_compute_ib_forces !> Subroutine to deallocate memory reserved for the IBM module From ec0ccf636ed9a17508a75e22a8b7e0ec073988a8 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 4 Dec 2025 10:31:26 -0500 Subject: [PATCH 19/23] Spelling: --- src/simulation/m_ibm.fpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 2f2e5f8ac0..0eb30e0c44 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1036,7 +1036,7 @@ contains pressure_divergence(3) = 0._wp end if - ! Update the force values atmoically to prevent race conditions + ! Update the force values atomically to prevent race conditions $:GPU_ATOMIC(atomic='update') forces(ib_idx, :) = forces(ib_idx, :) - (pressure_divergence*cell_volume) $:GPU_ATOMIC(atomic='update') From a4967c9fc34b75b7cce9bba2fa149685f4b81f36 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 4 Dec 2025 10:37:14 -0500 Subject: [PATCH 20/23] Replaced variable in numeric moment of inertia calculation --- src/simulation/m_ibm.fpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 0eb30e0c44..3564ee9580 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1106,7 +1106,7 @@ contains $:GPU_PARALLEL_LOOP(private='[position,closest_point_along_axis,vector_to_axis,distance_to_axis]', copy='[moment,count]', copyin='[ib_marker,cell_volume,axis]', collapse=3) do i = 0, m - do j = 0, j + do j = 0, n do k = 0, p if (ib_markers%sf(i, j, k) == ib_marker) then $:GPU_ATOMIC(atomic='update') From 853194632b0b1f3c15b0d3eb14a092fbc6052d07 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 4 Dec 2025 15:47:26 -0500 Subject: [PATCH 21/23] Added feedback for if variables are not the same in non-MPI --- src/common/m_mpi_common.fpp | 2 ++ src/simulation/m_ibm.fpp | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/m_mpi_common.fpp b/src/common/m_mpi_common.fpp index 414c423963..2488e2ea14 100644 --- a/src/common/m_mpi_common.fpp +++ b/src/common/m_mpi_common.fpp @@ -492,6 +492,8 @@ contains mpi_p, MPI_SUM, MPI_COMM_WORLD, ierr) end if +#else + var_glb = var_loc #endif end subroutine s_mpi_allreduce_vectors_sum diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 3564ee9580..4fd3f7bb64 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1017,10 +1017,11 @@ contains ib_idx = ib_markers%sf(i, j, k) if (ib_idx /= 0) then ! only need to compute the gradient for cells inside a IB if (patch_ib(ib_idx)%moving_ibm == 2) then ! make sure that this IB has 2-way coupling enabled + ! get the vector pointing to the grid cell from the IB centroid if (num_dims == 3) then - radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, patch_ib(ib_idx)%z_centroid] ! get the vector pointing to the grid cell + radial_vector = [x_cc(i), y_cc(j), z_cc(k)] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, patch_ib(ib_idx)%z_centroid] else - radial_vector = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, 0._wp] ! get the vector pointing to the grid cell + radial_vector = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, 0._wp] end if ! use a finite difference to compute the 2D components of the gradient of the pressure and cell volume @@ -1040,7 +1041,7 @@ contains $:GPU_ATOMIC(atomic='update') forces(ib_idx, :) = forces(ib_idx, :) - (pressure_divergence*cell_volume) $:GPU_ATOMIC(atomic='update') - torques(ib_idx, :) = torques(ib_idx, :) + (cross_product(radial_vector, pressure_divergence)*cell_volume) + torques(ib_idx, :) = torques(ib_idx, :) - (cross_product(radial_vector, pressure_divergence)*cell_volume) end if end if end do From cfe671402d160abd63c80750278f59293e426f85 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 4 Dec 2025 15:53:13 -0500 Subject: [PATCH 22/23] Fixed issue with cell volume calculations --- src/simulation/m_ibm.fpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index 4fd3f7bb64..d343939f0d 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -1004,13 +1004,13 @@ contains integer :: i, j, k, ib_idx real(wp), dimension(num_ibs, 3) :: forces, torques real(wp), dimension(1:3) :: pressure_divergence, radial_vector - real(wp) :: cell_volume + real(wp) :: cell_volume, dx, dy, dz forces = 0._wp torques = 0._wp ! TODO :: This is currently only valid inviscid, and needs to be extended to add viscocity - $:GPU_PARALLEL_LOOP(private='[ib_idx,radial_vector,pressure_divergence,cell_volume]', copy='[forces,torques]', copyin='[ib_markers]', collapse=3) + $:GPU_PARALLEL_LOOP(private='[ib_idx,radial_vector,pressure_divergence,cell_volume, dx, dy, dz]', copy='[forces,torques]', copyin='[ib_markers]', collapse=3) do i = 0, m do j = 0, n do k = 0, p @@ -1023,16 +1023,19 @@ contains else radial_vector = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, 0._wp] end if + dx = x_cc(i+1)-x_cc(i) + dy = y_cc(j+1)-y_cc(j) ! use a finite difference to compute the 2D components of the gradient of the pressure and cell volume - pressure_divergence(1) = (pressure(i + 1, j, k) - pressure(i - 1, j, k))/(2._wp*x_cc(i)) - pressure_divergence(2) = (pressure(i, j + 1, k) - pressure(i, j - 1, k))/(2._wp*y_cc(j)) - cell_volume = x_cc(i)*y_cc(j) + pressure_divergence(1) = (pressure(i + 1, j, k) - pressure(i - 1, j, k))/(2._wp*dx) + pressure_divergence(2) = (pressure(i, j + 1, k) - pressure(i, j - 1, k))/(2._wp*dy) + cell_volume = dx*dy ! add the 3D component, if we are working in 3 dimensions if (num_dims == 3) then - pressure_divergence(3) = (pressure(i, j, k + 1) - pressure(i, j, k - 1))/(2._wp*z_cc(k)) - cell_volume = cell_volume*z_cc(k) + dz = z_cc(k+1)-z_cc(k) + pressure_divergence(3) = (pressure(i, j, k + 1) - pressure(i, j, k - 1))/(2._wp*dz) + cell_volume = cell_volume*dz else pressure_divergence(3) = 0._wp end if From a216ed457e7b7a9b83dcbc1c9da7072fb4b18ff4 Mon Sep 17 00:00:00 2001 From: "Daniel J. Vickers" Date: Thu, 4 Dec 2025 18:03:55 -0500 Subject: [PATCH 23/23] Several major updates to the pressure and new golden files --- .../2D_mibm_cylinder_in_cross_flow/case.py | 2 +- src/common/m_mpi_common.fpp | 2 +- src/simulation/m_ibm.fpp | 49 +++---- tests/127A967A/golden-metadata.txt | 133 +++++++++--------- tests/127A967A/golden.txt | 8 +- 5 files changed, 95 insertions(+), 99 deletions(-) diff --git a/examples/2D_mibm_cylinder_in_cross_flow/case.py b/examples/2D_mibm_cylinder_in_cross_flow/case.py index dd230118dc..07adb3b491 100644 --- a/examples/2D_mibm_cylinder_in_cross_flow/case.py +++ b/examples/2D_mibm_cylinder_in_cross_flow/case.py @@ -95,7 +95,7 @@ "patch_ib(1)%angular_vel(1)": 0.0, # x-axis rotational velocity in radians per second "patch_ib(1)%angular_vel(2)": 0.0, # y-axis rotation "patch_ib(1)%angular_vel(3)": 0.0, # z-axis rotation - "patch_ib(1)%mass": 0.0001, # z-axis rotation + "patch_ib(1)%mass": 1.0e-6, # z-axis rotation # Fluids Physical Parameters "fluid_pp(1)%gamma": 1.0e00 / (gam_a - 1.0e00), # 2.50(Not 1.40) "fluid_pp(1)%pi_inf": 0, diff --git a/src/common/m_mpi_common.fpp b/src/common/m_mpi_common.fpp index 2488e2ea14..311073d2d5 100644 --- a/src/common/m_mpi_common.fpp +++ b/src/common/m_mpi_common.fpp @@ -493,7 +493,7 @@ contains end if #else - var_glb = var_loc + var_glb(1:num_vectors, 1:vector_length) = var_loc(1:num_vectors, 1:vector_length) #endif end subroutine s_mpi_allreduce_vectors_sum diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index d343939f0d..14cc26dd5f 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -197,19 +197,17 @@ contains type(ghost_point) :: innerp ! set the Moving IBM interior Pressure Values - do patch_id = 1, num_ibs - if (patch_ib(patch_id)%moving_ibm == 2) then - do j = 0, m - do k = 0, n - do l = 0, p - if (ib_markers%sf(j, k, l) == patch_id) then - q_prim_vf(E_idx)%sf(j, k, l) = 1._wp - end if - end do + $:GPU_PARALLEL_LOOP(private='[i,j,k]', copyin='[E_idx]', collapse=3) + do l = 0, p + do k = 0, n + do j = 0, m + if (ib_markers%sf(j, k, l) /= 0) then + q_prim_vf(E_idx)%sf(j, k, l) = 1._wp + end if end do end do - end if - end do + end do + $:END_GPU_PARALLEL_LOOP() if (num_gps > 0) then $:GPU_PARALLEL_LOOP(private='[i,physical_loc,dyn_pres,alpha_rho_IP, alpha_IP,pres_IP,vel_IP,vel_g,vel_norm_IP,r_IP, v_IP,pb_IP,mv_IP,nmom_IP,presb_IP,massv_IP,rho, gamma,pi_inf,Re_K,G_K,Gs,gp,innerp,norm,buf, radial_vector, rotation_velocity, j,k,l,q,qv_K,c_IP,nbub,patch_id]') @@ -260,14 +258,15 @@ contains end if ! set the pressure - do q = 1, num_fluids - if (patch_ib(patch_id)%moving_ibm == 0) then - q_prim_vf(E_idx)%sf(j, k, l) = pres_IP - else - ! TODO :: improve for two fluid - q_prim_vf(E_idx)%sf(j, k, l) = pres_IP/(1._wp - 2._wp*abs(levelset%sf(j, k, l, patch_id)*alpha_rho_IP(q)/pres_IP)*dot_product(patch_ib(patch_id)%force/patch_ib(patch_id)%mass, levelset_norm%sf(j, k, l, patch_id, :))) - end if - end do + if (patch_ib(patch_id)%moving_ibm == 0) then + q_prim_vf(E_idx)%sf(j, k, l) = pres_IP + else + q_prim_vf(E_idx)%sf(j, k, l) = 0._wp + $:GPU_LOOP(parallelism='[seq]') + do q = 1, num_fluids + q_prim_vf(E_idx)%sf(j, k, l) = q_prim_vf(E_idx)%sf(j, k, l) + pres_IP/(1._wp - 2._wp*abs(levelset%sf(j, k, l, patch_id)*alpha_rho_IP(q)/pres_IP)*dot_product(patch_ib(patch_id)%force/patch_ib(patch_id)%mass, levelset_norm%sf(j, k, l, patch_id, :))) + end do + end if if (model_eqns /= 4) then ! If in simulation, use acc mixture subroutines @@ -1023,8 +1022,8 @@ contains else radial_vector = [x_cc(i), y_cc(j), 0._wp] - [patch_ib(ib_idx)%x_centroid, patch_ib(ib_idx)%y_centroid, 0._wp] end if - dx = x_cc(i+1)-x_cc(i) - dy = y_cc(j+1)-y_cc(j) + dx = x_cc(i + 1) - x_cc(i) + dy = y_cc(j + 1) - y_cc(j) ! use a finite difference to compute the 2D components of the gradient of the pressure and cell volume pressure_divergence(1) = (pressure(i + 1, j, k) - pressure(i - 1, j, k))/(2._wp*dx) @@ -1033,7 +1032,7 @@ contains ! add the 3D component, if we are working in 3 dimensions if (num_dims == 3) then - dz = z_cc(k+1)-z_cc(k) + dz = z_cc(k + 1) - z_cc(k) pressure_divergence(3) = (pressure(i, j, k + 1) - pressure(i, j, k - 1))/(2._wp*dz) cell_volume = cell_volume*dz else @@ -1062,6 +1061,8 @@ contains patch_ib(i)%torque(:) = matmul(patch_ib(i)%rotation_matrix_inverse, torques(i, :)) ! torques must be computed in the local coordinates of the IB end do + print *, forces(1, 1:2) + end subroutine s_compute_ib_forces !> Subroutine to deallocate memory reserved for the IBM module @@ -1096,7 +1097,7 @@ contains if (patch_ib(ib_marker)%geometry == 2) then ! circle patch_ib(ib_marker)%moment = 0.5*patch_ib(ib_marker)%mass*(patch_ib(ib_marker)%radius)**2 elseif (patch_ib(ib_marker)%geometry == 3) then ! rectangle - patch_ib(ib_marker)%moment = patch_ib(i)%mass*(patch_ib(ib_marker)%length_x**2 + patch_ib(ib_marker)%length_y**2)/6._wp + patch_ib(ib_marker)%moment = patch_ib(ib_marker)%mass*(patch_ib(ib_marker)%length_x**2 + patch_ib(ib_marker)%length_y**2)/6._wp elseif (patch_ib(ib_marker)%geometry == 8) then ! sphere patch_ib(ib_marker)%moment = 0.4*patch_ib(ib_marker)%mass*(patch_ib(ib_marker)%radius)**2 @@ -1126,7 +1127,7 @@ contains ! project the position along the axis to find the closest distance to the rotation axis closest_point_along_axis = axis*dot_product(axis, position) vector_to_axis = position - closest_point_along_axis - distance_to_axis = sum(vector_to_axis) ! saves the distance to the axis squared + distance_to_axis = dot_product(vector_to_axis, vector_to_axis) ! saves the distance to the axis squared ! compute the position component of the moment $:GPU_ATOMIC(atomic='update') diff --git a/tests/127A967A/golden-metadata.txt b/tests/127A967A/golden-metadata.txt index feee1b7e73..dcd99ff8f1 100644 --- a/tests/127A967A/golden-metadata.txt +++ b/tests/127A967A/golden-metadata.txt @@ -1,23 +1,23 @@ -This file was created on 2025-12-03 16:32:16.223428. +This file was created on 2025-12-04 18:03:33.497282. mfc.sh: - Invocation: test --generate --only 127A967A + Invocation: test --only 127A967A --generate Lock: mpi=Yes & gpu=No & debug=No & gcov=No & unified=No & single=No & mixed=No & fastmath=No - Git: c82a623bc4aec13b6349e4e2eadc5092f2dfd3de on forces-via-volume-integrals (clean) + Git: cfe671402d160abd63c80750278f59293e426f85 on forces-via-volume-integrals (dirty) -pre_process: +post_process: CMake Configuration: - CMake v3.28.3 on schwarzschild + CMake v4.0.3 on oppenheimer - C : GNU v13.3.0 (/usr/bin/cc) - Fortran : GNU v13.3.0 (/usr/bin/gfortran) + C : AppleClang v17.0.0.17000013 (/usr/bin/cc) + Fortran : GNU v15.1.0 (/opt/homebrew/bin/gfortran) - PRE_PROCESS : ON + PRE_PROCESS : OFF SIMULATION : OFF - POST_PROCESS : OFF + POST_PROCESS : ON SYSCHECK : OFF DOCUMENTATION : OFF ALL : OFF @@ -26,7 +26,7 @@ pre_process: OpenACC : OFF OpenMP : OFF - Fypp : /home/dan/Documents/repos/MFC/build/venv/bin/fypp + Fypp : /Users/dan/Documents/repos/MFC/build/venv/bin/fypp Doxygen : Build Type : Release @@ -35,22 +35,22 @@ pre_process: CC : /usr/bin/cc CXX : /usr/bin/c++ - FC : /usr/bin/gfortran + FC : /opt/homebrew/bin/gfortran OMPI_CC : OMPI_CXX : OMPI_FC : -simulation: +pre_process: CMake Configuration: - CMake v3.28.3 on schwarzschild + CMake v4.0.3 on oppenheimer - C : GNU v13.3.0 (/usr/bin/cc) - Fortran : GNU v13.3.0 (/usr/bin/gfortran) + C : AppleClang v17.0.0.17000013 (/usr/bin/cc) + Fortran : GNU v15.1.0 (/opt/homebrew/bin/gfortran) - PRE_PROCESS : OFF - SIMULATION : ON + PRE_PROCESS : ON + SIMULATION : OFF POST_PROCESS : OFF SYSCHECK : OFF DOCUMENTATION : OFF @@ -60,7 +60,7 @@ simulation: OpenACC : OFF OpenMP : OFF - Fypp : /home/dan/Documents/repos/MFC/build/venv/bin/fypp + Fypp : /Users/dan/Documents/repos/MFC/build/venv/bin/fypp Doxygen : Build Type : Release @@ -69,7 +69,7 @@ simulation: CC : /usr/bin/cc CXX : /usr/bin/c++ - FC : /usr/bin/gfortran + FC : /opt/homebrew/bin/gfortran OMPI_CC : OMPI_CXX : OMPI_FC : @@ -78,10 +78,10 @@ syscheck: CMake Configuration: - CMake v3.28.3 on schwarzschild + CMake v4.0.3 on oppenheimer - C : GNU v13.3.0 (/usr/bin/cc) - Fortran : GNU v13.3.0 (/usr/bin/gfortran) + C : AppleClang v17.0.0.17000013 (/usr/bin/cc) + Fortran : GNU v15.1.0 (/opt/homebrew/bin/gfortran) PRE_PROCESS : OFF SIMULATION : OFF @@ -94,7 +94,41 @@ syscheck: OpenACC : OFF OpenMP : OFF - Fypp : /home/dan/Documents/repos/MFC/build/venv/bin/fypp + Fypp : /Users/dan/Documents/repos/MFC/build/venv/bin/fypp + Doxygen : + + Build Type : Release + + Configuration Environment: + + CC : /usr/bin/cc + CXX : /usr/bin/c++ + FC : /opt/homebrew/bin/gfortran + OMPI_CC : + OMPI_CXX : + OMPI_FC : + +simulation: + + CMake Configuration: + + CMake v4.0.3 on oppenheimer + + C : AppleClang v17.0.0.17000013 (/usr/bin/cc) + Fortran : GNU v15.1.0 (/opt/homebrew/bin/gfortran) + + PRE_PROCESS : OFF + SIMULATION : ON + POST_PROCESS : OFF + SYSCHECK : OFF + DOCUMENTATION : OFF + ALL : OFF + + MPI : ON + OpenACC : OFF + OpenMP : OFF + + Fypp : /Users/dan/Documents/repos/MFC/build/venv/bin/fypp Doxygen : Build Type : Release @@ -103,7 +137,7 @@ syscheck: CC : /usr/bin/cc CXX : /usr/bin/c++ - FC : /usr/bin/gfortran + FC : /opt/homebrew/bin/gfortran OMPI_CC : OMPI_CXX : OMPI_FC : @@ -111,49 +145,10 @@ syscheck: CPU: CPU Info: - From lscpu - Architecture: x86_64 - CPU op-mode(s): 32-bit, 64-bit - Address sizes: 46 bits physical, 48 bits virtual - Byte Order: Little Endian - CPU(s): 20 - On-line CPU(s) list: 0-19 - Vendor ID: GenuineIntel - Model name: 12th Gen Intel(R) Core(TM) i7-12700K - CPU family: 6 - Model: 151 - Thread(s) per core: 2 - Core(s) per socket: 12 - Socket(s): 1 - Stepping: 2 - CPU(s) scaling MHz: 17% - CPU max MHz: 5100.0000 - CPU min MHz: 800.0000 - BogoMIPS: 7219.20 - Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault cat_l2 cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdt_a rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize pconfig arch_lbr ibt flush_l1d arch_capabilities - Virtualization: VT-x - L1d cache: 512 KiB (12 instances) - L1i cache: 512 KiB (12 instances) - L2 cache: 12 MiB (9 instances) - L3 cache: 25 MiB (1 instance) - NUMA node(s): 1 - NUMA node0 CPU(s): 0-19 - Vulnerability Gather data sampling: Not affected - Vulnerability Ghostwrite: Not affected - Vulnerability Indirect target selection: Not affected - Vulnerability Itlb multihit: Not affected - Vulnerability L1tf: Not affected - Vulnerability Mds: Not affected - Vulnerability Meltdown: Not affected - Vulnerability Mmio stale data: Not affected - Vulnerability Reg file data sampling: Mitigation; Clear Register File - Vulnerability Retbleed: Not affected - Vulnerability Spec rstack overflow: Not affected - Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl - Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization - Vulnerability Spectre v2: Mitigation; Enhanced / Automatic IBRS; IBPB conditional; PBRSB-eIBRS SW sequence; BHI BHI_DIS_S - Vulnerability Srbds: Not affected - Vulnerability Tsa: Not affected - Vulnerability Tsx async abort: Not affected - Vulnerability Vmscape: Mitigation; IBPB before exit to userspace + From sysctl -a + machdep.cpu.cores_per_package: 8 + machdep.cpu.core_count: 8 + machdep.cpu.logical_per_package: 8 + machdep.cpu.thread_count: 8 + machdep.cpu.brand_string: Apple M2 diff --git a/tests/127A967A/golden.txt b/tests/127A967A/golden.txt index c7c0f61d09..315e091807 100644 --- a/tests/127A967A/golden.txt +++ b/tests/127A967A/golden.txt @@ -1,11 +1,11 @@ D/cons.1.00.000000.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -D/cons.1.00.000050.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000005 1.00000000000043 1.00000000000261 1.00000000005991 1.00000000248518 1.00000002891095 1.00000026882451 1.00000225617394 1.00000884792178 1.00001381251715 1.00000442107632 1.00000090524213 1.00000002136653 0.99999999546377 0.99999999893533 0.99999999995145 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000003 1.00000000000025 1.00000000000165 1.00000000006775 1.00000000311545 1.00000003919153 1.00000042327453 1.00000389695477 1.0000299224979 1.00011251738463 1.00016108568677 1.00004995448232 1.00000701500206 0.99999977328458 0.99999986720773 0.99999997888409 0.99999999812759 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000013 1.00000000000066 1.00000000004877 1.00000000281132 1.00000003922022 1.00000047144728 1.0000048338705 1.00004313482227 1.00028267163437 1.00098217662524 1.00119756026515 1.00033293548093 1.00002796152015 0.99999251739276 0.99999777561616 0.99999965409751 0.999999972938 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000006 1.00000000000032 1.00000000002151 1.00000000197213 1.00000003153099 1.00000041216788 1.00000466201002 1.00004526214098 1.00039602553925 1.00236897793966 1.00829077279609 1.00803716668009 1.0012336133645 0.99990404851472 0.9998894039554 0.99997304475007 0.99999580043603 0.99999968114213 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000006 1.00000000000036 1.00000000001098 1.00000000128314 1.00000002169107 1.00000031053229 1.00000389658963 1.00004149465445 1.00035108459867 1.00310391415479 1.01237625823015 1.02270779084853 1.02146340439532 1.00159975894143 0.99648509808045 0.99864509556485 0.99972173961085 0.99996786008147 0.99999723366684 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000006 1.00000000000021 1.00000000038078 1.00000000756513 1.00000011427859 1.00000152610866 1.00001744568644 1.00016715764456 1.00126758438498 1.01089869073986 1.0329987591769 1.05537681012496 1.01398026748741 0.98021135982092 0.98394127065626 0.99426220553619 0.9989848778295 0.99986918000423 0.99998808237467 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000008 1.0000000000052 1.00000000123968 1.00000002043417 1.00000030101131 1.00000384483118 1.00004148383964 1.00036998671585 1.00270329156515 1.0182745952392 1.0429858419826 1.04288001861747 0.97251764332204 0.97260279653848 0.96606994639218 0.98504831802971 0.99671869842284 0.99960958044817 0.99996462984825 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000005 1.0000000000002 1.00000000041109 1.00000000793535 1.00000011729845 1.00000152562117 1.0000169058679 1.00015560978487 1.00122206176224 1.00751668769553 1.02100853122276 1.02115517537675 0.97629076231193 0.94867070481921 0.97282062278297 0.99042400342104 0.99867015353981 0.99981924427493 0.99998396655393 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000006 1.00000000000039 1.00000000001777 1.00000000153588 1.00000002470413 1.00000034232239 1.00000409551591 1.00004054030438 1.00034075074653 1.001800872542 1.00530494198284 0.99857503572385 0.97980620798832 0.97985898021093 0.98908818318969 0.99687966419197 0.99961583171216 0.99995262326793 0.99999605068767 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000008 1.0000000000004 1.00000000003141 1.00000000222263 1.00000003314271 1.00000040240203 1.00000417247546 1.00003697053747 1.0001803552889 1.00034612854947 0.99888293348939 0.99125330713514 0.99085787318385 0.99736139537672 0.99953017237619 0.9999444354577 0.99999412292482 0.99999953622203 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000002 1.00000000000016 1.00000000000068 1.00000000007296 1.00000000335887 1.00000004410955 1.00000051785492 1.00000367990448 1.00001433663755 0.99999296951462 0.99967140114099 0.99837673463497 0.99875618735483 0.99966190211922 0.99994549209743 0.9999936045351 0.99999935548774 0.99999995070379 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000004 1.0000000000003 1.00000000000244 1.00000000007826 1.00000000331435 1.00000003897845 1.00000027115622 1.00000080924826 0.99999428640248 0.99993165532868 0.99978490662985 0.99985263203419 0.99996069203939 0.99999459632103 0.99999938961381 0.99999994168104 0.99999999570553 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000007 1.00000000000057 1.00000000000424 1.00000000012021 1.00000000234417 1.00000001584719 1.00000002129075 0.99999909959838 0.99999276425904 0.99997493163247 0.99998492498809 0.99999625231186 0.9999995422103 0.99999994990244 0.99999999538895 0.99999999984335 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000007 1.00000000000059 1.00000000000433 1.00000000007942 1.00000000075316 0.99999999785607 0.99999988314838 0.99999929457147 0.99999759519569 0.99999868820404 0.99999969578943 0.99999996579012 0.99999999638874 0.99999999985475 0.99999999999625 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000005 1.00000000000037 1.00000000000063 0.99999999999912 0.99999999970258 0.99999999079095 0.99999994193503 0.99999980395626 0.99999990087564 0.99999997844594 0.99999999781946 0.99999999991259 0.999999999998 0.99999999999941 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000004 1.00000000000004 0.99999999999921 0.99999999998809 0.99999999947583 0.99999999577828 0.99999998604266 0.99999999332387 0.99999999868327 0.99999999996903 0.99999999999951 0.9999999999997 0.99999999999992 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999991 0.99999999999914 0.99999999999595 0.99999999981896 0.99999999914782 0.9999999996714 0.99999999998964 0.9999999999998 0.99999999999988 0.99999999999995 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999989 0.99999999999949 0.99999999999962 0.99999999999994 0.99999999999987 0.99999999999968 0.99999999999996 0.99999999999998 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999999 0.9999999999999 0.9999999999999 0.99999999999997 0.99999999999996 0.99999999999996 0.99999999999999 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999999 0.99999999999998 0.99999999999999 0.99999999999999 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +D/cons.1.00.000050.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000005 1.00000000000043 1.0000000000026 1.00000000005959 1.0000000024797 1.00000002884774 1.000000268344 1.0000022492814 1.00000881795754 1.00001371840713 1.00000443840522 1.00000090815759 1.00000002163506 0.99999999546873 0.99999999893431 0.99999999995108 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000003 1.00000000000025 1.00000000000164 1.00000000006741 1.00000000310871 1.00000003909965 1.0000004222109 1.00000388996087 1.00002981279292 1.0001121495435 1.00015970597748 1.00005030821396 1.00000704532692 0.9999997784402 0.99999986746852 0.99999997887725 0.99999999810318 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000013 1.00000000000067 1.00000000004847 1.00000000280479 1.00000003912007 1.00000047005507 1.00000481915722 1.00004304365093 1.00028137348933 1.00098398898122 1.00119247216308 1.00033155648737 1.00002815948502 0.9999925925958 0.99999778158853 0.99999965418174 0.99999997292247 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000006 1.00000000000032 1.00000000002132 1.00000000196692 1.00000003143912 1.00000041066882 1.00000464290624 1.00004509739957 1.00039546155216 1.00236592891775 1.00832050844317 1.0079562335406 1.00121590984065 0.99990565023817 0.9998904135531 0.999973145391 0.99999579630136 0.99999968060331 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000006 1.00000000000036 1.00000000001091 1.00000000128027 1.00000002163753 1.00000030956655 1.00000388049165 1.00004125758829 1.00034805294784 1.00309002680186 1.01219267889909 1.02200070948297 1.02056773477218 1.00153837617589 0.99651380512362 0.99865459424484 0.99972277713394 0.9999679841293 0.99999724213128 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000006 1.00000000000021 1.00000000037969 1.00000000754417 1.00000011387846 1.00000151935601 1.00001734990726 1.0001660790427 1.00126282138318 1.0108139412836 1.03206067147984 1.05300862232409 1.01339376889326 0.98106287485993 0.98433200323471 0.99433836821428 0.99898659544772 0.99986984774938 0.99998812397824 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000008 1.00000000000506 1.00000000123552 1.00000002035061 1.00000029939552 1.00000381817864 1.00004112973825 1.0003659128127 1.00269997063055 1.01799970198972 1.04080379540375 1.04076142972022 0.97385083642864 0.97350359935548 0.96732167119668 0.98538130677003 0.99673543657761 0.99961347529604 0.99996482794384 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000005 1.0000000000002 1.00000000040986 1.00000000791219 1.00000011686761 1.00000151868187 1.00001681362642 1.00015455973484 1.00121854100666 1.00740116753425 1.02043122657822 1.02017143651674 0.97720805419775 0.95062397167624 0.97342050771063 0.99048814308727 0.99867471003173 0.99982010941489 0.99998402836755 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000006 1.00000000000039 1.00000000001762 1.00000000153182 1.00000002462995 1.00000034103265 1.00000407572377 1.00004028342167 1.00033737345661 1.00179209278649 1.00523046934847 0.99863878548162 0.98057005063137 0.98029529880362 0.9892094248511 0.9968940645618 0.999617805115 0.99995280635024 0.99999606288215 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000008 1.0000000000004 1.00000000003114 1.00000000221573 1.00000003303275 1.00000040084223 1.00000415882374 1.00003670896603 1.00017924492199 1.00034182020691 0.99889608004209 0.9913663848813 0.99093596835175 0.99737075453252 0.99953102233892 0.99994459312503 0.99999413957337 0.99999953734667 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000002 1.00000000000016 1.00000000000068 1.00000000007248 1.00000000334943 1.00000004396931 1.00000051603952 1.00000366201079 1.00001426891511 0.99999294749085 0.99967438316695 0.99839194696475 0.99875783006288 0.99966333748857 0.99994558580123 0.99999361788977 0.99999935684644 0.99999995079931 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000004 1.0000000000003 1.00000000000245 1.00000000007772 1.00000000330446 1.00000003885607 1.000000270074 1.0000008055191 0.99999429022657 0.99993193529656 0.99978764529882 0.99985323288181 0.99996081194377 0.99999460413534 0.99999939079677 0.99999994179094 0.99999999571316 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000007 1.00000000000057 1.00000000000426 1.00000000011979 1.00000000233761 1.00000001579327 1.00000002119145 0.99999910269408 0.99999279365215 0.99997513392116 0.99998497486989 0.99999626159834 0.999999542977 0.99999994999873 0.99999999539704 0.99999999984392 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000001 1.00000000000007 1.00000000000059 1.00000000000434 1.00000000007903 1.00000000075092 0.99999999785989 0.99999988352251 0.99999929692791 0.99999760923474 0.99999869190155 0.99999969642163 0.99999996585307 0.99999999639562 0.99999999985522 0.99999999999626 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000005 1.00000000000037 1.00000000000063 0.99999999999913 0.99999999970334 0.99999999081601 0.99999994209594 0.99999980480045 0.99999990110823 0.99999997848403 0.9999999978239 0.99999999991293 0.999999999998 0.99999999999941 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00000000000004 1.00000000000004 0.99999999999921 0.99999999998809 0.99999999947736 0.99999999578767 0.9999999860878 0.99999999333684 0.99999999868546 0.99999999996919 0.99999999999952 0.9999999999997 0.99999999999992 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999991 0.99999999999914 0.99999999999596 0.99999999981953 0.99999999915024 0.99999999967212 0.9999999999897 0.9999999999998 0.99999999999988 0.99999999999995 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999989 0.99999999999949 0.99999999999962 0.99999999999994 0.99999999999987 0.99999999999968 0.99999999999996 0.99999999999998 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999999 0.9999999999999 0.9999999999999 0.99999999999997 0.99999999999996 0.99999999999996 0.99999999999999 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.99999999999999 0.99999999999998 0.99999999999999 0.99999999999999 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 D/cons.2.00.000000.dat 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 -D/cons.2.00.000050.dat 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999998 0.04999999999985 0.04999999999852 0.04999999995641 0.0499999983967 0.04999997952971 0.04999978191689 0.04999796506702 0.04999025889306 0.04998169706106 0.04999611085642 0.04999938528897 0.05000003406488 0.05000000856657 0.05000000100545 0.05000000001462 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999998 0.04999999999991 0.04999999999923 0.04999999996488 0.04999999803882 0.04999997229677 0.04999967269375 0.04999665422966 0.04997168524811 0.04987327254808 0.04979311624675 0.04995397841543 0.04999594739398 0.05000077788507 0.0500001639964 0.05000002052222 0.05000000142172 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999997 0.04999999999991 0.04999999998695 0.04999999844259 0.04999997623937 0.04999968873807 0.0499965010374 0.04996504309478 0.04973820835164 0.04886555932451 0.04843778808391 0.04966225373664 0.05002701523979 0.05001309247728 0.0500022467731 0.05000026951288 0.05000001831563 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999997 0.04999999999993 0.04999999999827 0.04999999908656 0.04999998428982 0.04999977563247 0.04999723010338 0.04997053645753 0.04970923688668 0.04791285240187 0.04046420333642 0.03907204776879 0.04957555210315 0.05051144009196 0.05015540600603 0.05002287714675 0.05000246467859 0.05000017642509 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999998 0.04999999999169 0.04999999947116 0.04999999119532 0.04999986124473 0.04999804330651 0.04997620856266 0.04976347728702 0.04755588730479 0.03688418211879 0.01437060350092 0.02045694202298 0.05422678992115 0.05645452469339 0.05155752111215 0.05020233245261 0.05001961721525 0.05000145488255 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999994 0.04999999987414 0.04999999764279 0.049999962487 0.04999945230823 0.04999309608248 0.0499266930397 0.04936811276406 0.04440131390219 0.02711307233116 0.01470605861931 0.00087507308674 0.04613735708056 0.06908811263212 0.05544404130184 0.05072523836215 0.05007832371291 0.05000602983079 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000025 0.050000000056 0.05000000091518 0.05000001346286 0.05000017294338 0.05000189222029 0.05001739310026 0.05013022588402 0.05111953845441 0.05069538395107 0.00090001380328 0.00083929051022 0.00083936399812 0.05228187392241 0.05012122851237 0.04995499547067 0.0499919416536 0.04999903814445 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000009 0.0500000001691 0.05000000315234 0.05000004921188 0.05000070158163 0.05000864152319 0.05009005344984 0.05076081742011 0.05691156993021 0.07660369574895 0.05047641812066 0.0008425467421 0.02029819842763 0.03199499351858 0.04415345893543 0.04911822882368 0.04990431464006 0.04999245866319 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000005 0.05000000001208 0.05000000075044 0.05000001240977 0.05000018666652 0.05000249132331 0.05002826113878 0.05027356434779 0.05211426405864 0.05984506837099 0.05371160985389 0.02079466022408 0.01733300719257 0.03791279186699 0.04723145096985 0.04970555863263 0.04996803051822 0.04999760643662 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000005 0.05000000000011 0.0500000000101 0.05000000129503 0.05000002126439 0.0500002882534 0.05000333083001 0.05003513661765 0.05023318838838 0.05095275596936 0.04991870163798 0.03660642996376 0.03896622693327 0.04747990834842 0.04960725690713 0.04995782245821 0.0499959550632 0.0499997084973 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000006 0.05000000000015 0.05000000002912 0.05000000220327 0.05000003139675 0.05000038524923 0.05000377343971 0.05002264459563 0.05006307436213 0.04968943232059 0.04768905480554 0.04844277043544 0.04966184466254 0.04995016077492 0.04999470130797 0.04999951229451 0.04999996574246 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000003 0.05000000000014 0.05000000000127 0.05000000005654 0.05000000265932 0.05000003604149 0.05000031792185 0.05000162231062 0.05000073863141 0.04993019223311 0.04969990123289 0.04982000925175 0.04995949705861 0.04999482397968 0.04999946848261 0.04999995327899 0.04999999687019 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000004 0.05000000000028 0.05000000000267 0.05000000008561 0.05000000249016 0.05000002120161 0.05000008543336 0.04999942946791 0.04999252765673 0.04996559869146 0.04998179773187 0.04999605999322 0.04999954734343 0.04999995482017 0.04999999625434 0.04999999988223 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000006 0.05000000000055 0.05000000000221 0.0500000000624 0.05000000113051 0.05000000270023 0.04999989932472 0.04999925232776 0.0499967450211 0.04999842667202 0.04999967545278 0.04999996543917 0.04999999672522 0.04999999985538 0.04999999999801 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000006 0.05000000000045 0.0500000000012 0.04999999999997 0.04999999978849 0.04999999170712 0.04999993680487 0.04999973756309 0.04999988169797 0.0499999768142 0.04999999773868 0.04999999989704 0.0499999999987 0.04999999999946 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000004 0.05000000000017 0.04999999999968 0.04999999998615 0.04999999948328 0.04999999539019 0.04999998154085 0.04999999211345 0.04999999855465 0.0499999999601 0.04999999999938 0.04999999999966 0.04999999999992 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.04999999999995 0.04999999999907 0.04999999999818 0.04999999980508 0.04999999888801 0.04999999960797 0.04999999999297 0.04999999999979 0.04999999999987 0.04999999999995 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999988 0.04999999999938 0.04999999999949 0.04999999999973 0.04999999999979 0.04999999999962 0.04999999999996 0.04999999999998 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999989 0.04999999999987 0.04999999999996 0.04999999999995 0.04999999999995 0.04999999999999 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999998 0.04999999999999 0.04999999999999 0.04999999999999 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +D/cons.2.00.000050.dat 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999998 0.04999999999985 0.04999999999852 0.04999999995664 0.0499999984001 0.04999997957838 0.04999978232802 0.04999797157363 0.0499902878356 0.04998182739876 0.0499960751942 0.04999938106452 0.05000003381 0.05000000856874 0.05000000100677 0.05000000001495 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999998 0.04999999999991 0.04999999999924 0.04999999996505 0.04999999804289 0.0499999723654 0.04999967362416 0.04999666110062 0.04997179167587 0.04987362208779 0.04979500270019 0.04995332370807 0.04999590208714 0.05000077234015 0.0500001640228 0.05000002054782 0.05000000142656 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999997 0.04999999999991 0.04999999998707 0.0499999984459 0.04999997630444 0.04999968978865 0.04999651432822 0.04996513200567 0.04973947300454 0.04886228959382 0.04844702739997 0.04965988470099 0.05002665801026 0.05001300315021 0.05000224611704 0.05000027001187 0.05000001833414 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999997 0.04999999999993 0.04999999999829 0.04999999908893 0.04999998433892 0.04999977655061 0.04999724417788 0.04997068402071 0.04971003845997 0.04791717459303 0.04046153933614 0.03920886810765 0.04958772313699 0.05050682767823 0.0501543137144 0.05002283678706 0.05000246455708 0.05000017634278 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999998 0.04999999999171 0.04999999947224 0.04999999121361 0.04999986161475 0.04999804984207 0.04997631063731 0.04976510179399 0.04756388821286 0.03707798526772 0.0151910726345 0.02137024692702 0.05415951024026 0.05639912039192 0.05154645384744 0.05020172938319 0.05001953443281 0.05000145015627 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999994 0.04999999987455 0.04999999765034 0.04999996265127 0.04999945547732 0.04999314818286 0.04992741273364 0.04937334916842 0.04445347192799 0.0277792189321 0.01595995610544 0.0044145149174 0.04654566530577 0.06866919011405 0.0553730268946 0.05072330212586 0.05007789766397 0.05000600781569 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000024 0.05000000005581 0.05000000091144 0.05000001339099 0.05000017175019 0.05000187595906 0.05001720123517 0.05012957278729 0.05111144878045 0.05086645013896 0.00453373308381 0.00424225920536 0.00424074658185 0.05235222860661 0.05013473202561 0.04995480054216 0.04999204966421 0.04999904415738 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000008 0.05000000016857 0.05000000314246 0.05000004900437 0.05000069772611 0.05000858056632 0.05008923955642 0.05075540985388 0.05684935329741 0.07583370956532 0.05071451110407 0.00425688381464 0.02115766088615 0.032375754643 0.04423933031983 0.04912086777526 0.04990489321638 0.04999248838338 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000005 0.05000000001203 0.05000000074876 0.0500000123787 0.05000018606488 0.05000248115519 0.05002811163529 0.05027191286947 0.05210260596651 0.05973099420368 0.05363544462246 0.02150507607173 0.0179680479152 0.03805057168408 0.04724005011161 0.04970675862522 0.04996812419348 0.04999761281952 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000005 0.05000000000011 0.05000000001001 0.05000000129132 0.05000002119048 0.05000028703293 0.05000331511974 0.05003487805975 0.05023205427589 0.05094292163251 0.04992463698527 0.03682876661385 0.03906689587369 0.04748566506318 0.04960820666813 0.04995797035164 0.04999596878183 0.0499997092499 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.05000000000006 0.05000000000015 0.05000000002887 0.05000000219753 0.05000003129742 0.05000038395344 0.0500037547041 0.05002254076395 0.05006241989968 0.04969127516492 0.04771073658908 0.0484425882517 0.049663299753 0.04995030009267 0.04999471429796 0.04999951342255 0.04999996581089 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000003 0.05000000000013 0.05000000000127 0.05000000005615 0.05000000265182 0.05000003593323 0.05000031670824 0.05000161582414 0.05000070415837 0.0499303255639 0.04970371214049 0.04982060256319 0.04995961525821 0.04999483410635 0.049999469564 0.04999995336772 0.04999999687562 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000004 0.05000000000028 0.05000000000267 0.05000000008517 0.05000000248336 0.05000002113343 0.05000008511463 0.04999943086575 0.04999255070326 0.04996587640856 0.04998184990993 0.04999606952128 0.04999954815481 0.04999995490458 0.04999999626085 0.04999999988266 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000006 0.05000000000056 0.05000000000223 0.050000000062 0.05000000112714 0.05000000268971 0.04999989964493 0.04999925445991 0.04999676400779 0.04999843069989 0.04999967611215 0.04999996550212 0.04999999673104 0.04999999985583 0.04999999999802 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000006 0.05000000000045 0.0500000000012 0.04999999999997 0.0499999997887 0.04999999173111 0.04999993696475 0.04999973869117 0.04999988195783 0.0499999768544 0.04999999774288 0.0499999998974 0.04999999999869 0.04999999999946 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000004 0.05000000000017 0.04999999999968 0.04999999998617 0.04999999948497 0.04999999540003 0.04999998160065 0.04999999212809 0.04999999855683 0.04999999996031 0.04999999999938 0.04999999999966 0.04999999999992 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05000000000001 0.04999999999995 0.04999999999907 0.04999999999818 0.04999999980571 0.04999999889115 0.04999999960881 0.04999999999303 0.04999999999979 0.04999999999987 0.04999999999995 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999988 0.04999999999938 0.04999999999949 0.04999999999973 0.04999999999979 0.04999999999962 0.04999999999996 0.04999999999998 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999989 0.04999999999988 0.04999999999996 0.04999999999995 0.04999999999995 0.04999999999999 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.04999999999999 0.04999999999998 0.04999999999999 0.04999999999999 0.04999999999999 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 D/cons.3.00.000000.dat 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -D/cons.3.00.000050.dat -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -5e-14 -3.9e-13 -1.67e-12 -3.238e-11 -1.602e-09 -1.685203e-08 -1.3879433e-07 -1.20253567e-06 -2.48090056e-06 4.8065816e-07 2.6775886e-06 6.2848626e-07 5.263255e-08 1.95458e-09 -5.4975e-10 -4.098e-11 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -3e-14 -2.6e-13 -1.37e-12 -5.46e-11 -2.17158e-09 -2.666603e-08 -2.6752521e-07 -2.18830974e-06 -1.752609875e-05 -3.211928825e-05 7.66511127e-06 3.647123626e-05 7.51967815e-06 4.9668817e-07 -1.402219e-08 -1.067843e-08 -9.1592e-10 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -2e-14 -1.4e-13 -7.6e-13 -5.087e-11 -2.22457e-09 -3.063205e-08 -3.5114471e-07 -3.39969244e-06 -2.750061072e-05 -0.00018648476564 -0.00027706630843 9.528364695e-05 0.0003330373763 6.687850733e-05 3.2919989e-06 -1.1214102e-06 -2.2039798e-07 -1.580863e-08 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -3.4e-13 -2.576e-11 -1.8256e-09 -2.796068e-08 -3.5602536e-07 -3.91305267e-06 -3.657325698e-05 -0.00029593131579 -0.00179746420834 -0.00240061641215 0.00159538828075 0.00252336445901 0.00038246941389 4.94108514e-06 -2.013154284e-05 -3.59999296e-06 -2.4640266e-07 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -4.5e-13 -6.37e-12 -1.30309e-09 -2.128751e-08 -3.015354e-07 -3.69717504e-06 -3.81679221e-05 -0.00030819093772 -0.00264159178646 -0.00918696605728 -0.00894502422236 0.00790304543832 0.01264497615098 0.00118139905033 -0.00068990604601 -0.00022691359074 -2.794972064e-05 -2.31274576e-06 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -7e-14 -3e-13 -4.2078e-10 -8.27975e-09 -1.2572284e-07 -1.67158865e-06 -1.902987943e-05 -0.00018185379269 -0.00137772693871 -0.01213731773214 -0.0400116682209 -0.05298121495587 -0.1008045121587 -0.03345851742991 -0.0121939798663 -0.00569391521925 -0.00093531569062 -0.00012955329572 -1.138967415e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -9e-14 -6.51e-12 -1.53741e-09 -2.59862e-08 -3.863481e-07 -4.99058985e-06 -5.467985609e-05 -0.00049818810497 -0.0037464779014 -0.02621611747289 -0.07038919342009 -0.10367757133706 -0.09668251912213 -0.09669098460091 -0.0442989083387 -0.02338333186679 -0.00450880022162 -0.00052879220748 -4.894860962e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -7e-14 -2.8e-13 -4.6039e-10 -8.7796e-09 -1.2999687e-07 -1.67723378e-06 -1.840823211e-05 -0.00016761865249 -0.00130118300606 -0.00833918749171 -0.01798631430591 -0.04032600790647 -0.09705762249572 -0.04967291675366 -0.03372943932347 -0.01048973693236 -0.00142846475316 -0.0001999938414 -1.738735182e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -4.8e-13 -1.298e-11 -1.56446e-09 -2.48467e-08 -3.3932365e-07 -3.9442354e-06 -3.726442649e-05 -0.00029614138144 -0.00115164241236 0.00100102189618 0.01253987189686 0.00539062607243 -0.00901288704113 -0.00876673598871 -0.0026601678922 -0.00033376428405 -4.401176322e-05 -3.49810397e-06 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -8e-14 -4.6e-13 -3.392e-11 -2.01121e-09 -2.84468e-08 -3.2460469e-07 -3.08366754e-06 -2.646324632e-05 -5.620222336e-05 0.00042622892921 0.00311887118677 0.00194634041412 -0.00283639975938 -0.00209858305702 -0.00035444153341 -4.528772689e-05 -5.06617314e-06 -3.7266019e-07 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -3e-14 -1.7e-13 -8.1e-13 -7.562e-11 -2.69897e-09 -3.5334e-08 -4.0434199e-07 -2.3295561e-06 2.16260429e-06 7.769877415e-05 0.00044554496059 0.00013680966491 -0.00037923180177 -0.00023783432061 -3.549254234e-05 -4.57215344e-06 -4.9449213e-07 -3.457382e-08 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -4e-14 -2.9e-13 -2.1e-12 -5.735e-11 -2.09036e-09 -2.262854e-08 -1.1067959e-07 5.1652494e-07 9.72943745e-06 5.266275082e-05 1.053522087e-05 -4.549812061e-05 -2.423801213e-05 -3.11928838e-06 -3.9561964e-07 -4.097067e-08 -2.67848e-09 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -5.2e-13 -3.22e-12 -9.174e-11 -1.36949e-09 -1.14039e-09 5.778961e-08 9.2516025e-07 5.01145346e-06 9.1222982e-07 -4.56887504e-06 -2.06191627e-06 -2.4019976e-07 -2.995784e-08 -2.91654e-09 -9.48e-11 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -3e-13 -3.25e-12 -6.422e-11 1.0899e-10 5.92543e-09 7.997296e-08 4.0541908e-07 6.47887e-08 -3.8675841e-07 -1.507329e-07 -1.65617e-08 -2.00472e-09 -6.73e-11 -3.06e-12 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -2e-14 -1e-13 1.4e-13 1.6e-12 2.8909e-10 5.53166e-09 2.958209e-08 3.83231e-09 -2.821985e-08 -9.97116e-09 -1.01878e-09 -2.377e-11 -1.56e-12 -2.6e-13 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 1.1e-13 9.2e-13 1.43e-12 2.8934e-10 2.0374e-09 1.7924e-10 -1.91671e-09 -5.905e-10 -3.86e-12 -7e-14 -9e-14 -2e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 1e-13 2.9e-13 3.99e-12 8.751e-11 1.344e-11 -9.66e-11 -8.07e-12 -6e-14 -2e-14 -2e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 6e-14 1e-13 1.7e-13 4e-14 -2.9e-13 -7e-14 -3e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 1e-14 1e-14 -1e-14 -0.0 -0.0 -1e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 -0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 +D/cons.3.00.000050.dat -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -5e-14 -3.9e-13 -1.67e-12 -3.223e-11 -1.59892e-09 -1.681843e-08 -1.3856516e-07 -1.19948516e-06 -2.46667983e-06 4.7305218e-07 2.66766224e-06 6.2837466e-07 5.273083e-08 1.96152e-09 -5.4952e-10 -4.108e-11 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -3e-14 -2.6e-13 -1.37e-12 -5.432e-11 -2.16736e-09 -2.660954e-08 -2.6697658e-07 -2.18536472e-06 -1.746985815e-05 -3.188577043e-05 7.52103543e-06 3.632087106e-05 7.51955303e-06 4.9759222e-07 -1.338751e-08 -1.069859e-08 -9.4547e-10 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -2e-14 -1.4e-13 -7.6e-13 -5.059e-11 -2.21996e-09 -3.056143e-08 -3.5028609e-07 -3.39228723e-06 -2.746387943e-05 -0.00018575429547 -0.000274934958 9.539710802e-05 0.00033005014801 6.675412011e-05 3.30020203e-06 -1.11297457e-06 -2.1984161e-07 -1.579524e-08 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -3.4e-13 -2.554e-11 -1.82152e-09 -2.788533e-08 -3.5489957e-07 -3.90037565e-06 -3.648087169e-05 -0.00029578458508 -0.00179743546873 -0.00239494487606 0.00161491683665 0.0024996647428 0.00038130553297 5.24133202e-06 -2.007014129e-05 -3.61077303e-06 -2.4754039e-07 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -4.5e-13 -6.31e-12 -1.30044e-09 -2.123641e-08 -3.0063779e-07 -3.68262057e-06 -3.795807272e-05 -0.00030550485877 -0.00263302306327 -0.0090384013136 -0.00873250320269 0.0078136994975 0.0124105086927 0.00114908348924 -0.00068760738192 -0.00022594914669 -2.784193619e-05 -2.30527625e-06 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -7e-14 -3e-13 -4.1959e-10 -8.25765e-09 -1.2530581e-07 -1.66468922e-06 -1.893395559e-05 -0.0001808096265 -0.00137359789804 -0.01204430745508 -0.03908406264867 -0.05057186616935 -0.09237481699761 -0.0321005396525 -0.01189143877782 -0.00562583379135 -0.00093424222551 -0.00012897177645 -1.135233312e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -9e-14 -6.33e-12 -1.53255e-09 -2.588004e-08 -3.8428663e-07 -4.95617336e-06 -5.421356328e-05 -0.00049271119826 -0.00374025013747 -0.02578374947252 -0.06762679913976 -0.09486948662964 -0.0887703235992 -0.08873867157797 -0.04284919020004 -0.02294038586894 -0.00448841560301 -0.00052374594717 -4.868601861e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -7e-14 -2.8e-13 -4.5901e-10 -8.75455e-09 -1.295397e-07 -1.67007906e-06 -1.831677152e-05 -0.00016661899785 -0.00129817882927 -0.00820633189809 -0.01762033243704 -0.03822939550003 -0.0890763471673 -0.04796540451312 -0.03315006370455 -0.01044006199519 -0.00142376734459 -0.00019910533328 -1.732140606e-05 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -4.8e-13 -1.282e-11 -1.56065e-09 -2.477109e-08 -3.3804155e-07 -3.92518345e-06 -3.702744707e-05 -0.000292721984 -0.00114497263143 0.0009781418049 0.01226414392766 0.00533697016287 -0.00887069847331 -0.00866653199124 -0.00265194037207 -0.00033177136859 -4.38380998e-05 -3.48713425e-06 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -8e-14 -4.6e-13 -3.362e-11 -2.00578e-09 -2.835812e-08 -3.2349586e-07 -3.07803939e-06 -2.633475127e-05 -5.532420641e-05 0.00042317770559 0.00309383506817 0.00194882636492 -0.00281212147835 -0.00209095279699 -0.00035389951338 -4.519646062e-05 -5.05469823e-06 -3.7183709e-07 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -3e-14 -1.7e-13 -8.1e-13 -7.518e-11 -2.69171e-09 -3.522605e-08 -4.029288e-07 -2.31994601e-06 2.15440461e-06 7.707780667e-05 0.0004411811563 0.00013708614344 -0.00037533011449 -0.00023703056799 -3.54902698e-05 -4.56482649e-06 -4.9357931e-07 -3.451015e-08 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -4e-14 -2.9e-13 -2.1e-12 -5.694e-11 -2.08423e-09 -2.255534e-08 -1.1020425e-07 5.1510156e-07 9.69046654e-06 5.225840647e-05 1.047315795e-05 -4.506315655e-05 -2.41701399e-05 -3.11726451e-06 -3.949096e-07 -4.089622e-08 -2.67373e-09 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -7e-14 -5.2e-13 -3.25e-12 -9.159e-11 -1.36576e-09 -1.13199e-09 5.760326e-08 9.2156428e-07 4.98475148e-06 9.0767276e-07 -4.53853721e-06 -2.0576803e-06 -2.3981737e-07 -2.989892e-08 -2.91138e-09 -9.446e-11 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 -6e-14 -3e-13 -3.24e-12 -6.4e-11 1.0862e-10 5.9088e-09 7.972211e-08 4.0379866e-07 6.45278e-08 -3.8489106e-07 -1.5048811e-07 -1.652856e-08 -2.0011e-09 -6.705e-11 -3.05e-12 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -2e-14 -1e-13 1.4e-13 1.59e-12 2.8808e-10 5.51805e-09 2.949187e-08 3.82064e-09 -2.811843e-08 -9.95829e-09 -1.0167e-09 -2.363e-11 -1.55e-12 -2.6e-13 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -1e-14 1.1e-13 9.2e-13 1.43e-12 2.8863e-10 2.03259e-09 1.7895e-10 -1.91178e-09 -5.8964e-10 -3.85e-12 -7e-14 -9e-14 -2e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 1e-13 2.9e-13 3.97e-12 8.724e-11 1.343e-11 -9.632e-11 -8.05e-12 -6e-14 -2e-14 -2e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 7e-14 1e-13 1.7e-13 4e-14 -2.9e-13 -7e-14 -3e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 1e-14 1e-14 -1e-14 -0.0 -0.0 -1e-14 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 -0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 -0.0 D/cons.4.00.000000.dat 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 -D/cons.4.00.000050.dat 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000019 2.50125000000149 2.50125000000905 2.50125000020742 2.50125000861485 2.50125010012868 2.50125092964586 2.50125779206062 2.50128046994393 2.50129741234648 2.50126527384633 2.50125313648267 2.50125007645941 2.50124998455718 2.50124999632525 2.50124999983087 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000012 2.50125000000088 2.50125000000572 2.50125000023524 2.50125001081615 2.50125013575056 2.5012514645753 2.5012634672308 2.50135327814951 2.50163737326689 2.50180334053059 2.50142248366489 2.50127434126137 2.50124924567565 2.50124954358604 2.50124992713508 2.50124999351221 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000005 2.50125000000047 2.50125000000232 2.5012500001699 2.50125000977089 2.50125013603634 2.5012516339093 2.50126673761587 2.50139917494125 2.50222610690555 2.50463240568427 2.50536611596164 2.50239823638685 2.50134919274599 2.50122447534771 2.50124232979529 2.50124880325317 2.50124990622461 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000003 2.50125000000021 2.50125000000112 2.50125000007517 2.50125000685973 2.50125010953985 2.50125143084955 2.5012661727673 2.50140689283084 2.50262141896192 2.50944673722095 2.52994673807251 2.528986377352 2.50555192609895 2.50094076806304 2.50087087695124 2.5011568361814 2.50123543005918 2.50124889322013 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.5012500000002 2.50125000000126 2.50125000003799 2.50125000446298 2.50125007547528 2.50125107954332 2.50126353540378 2.50139399440079 2.5024668102115 2.51200778981069 2.5441993486861 2.58036697957547 2.5761670759855 2.50723336359976 2.48935137126082 2.49659228124622 2.50028671734946 2.50113853381635 2.50124039405963 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.5012500000002 2.50125000000075 2.50125000132597 2.50125002635609 2.50125039793846 2.50125531209206 2.50131069383499 2.50183125242162 2.50565717320287 2.53934669061043 2.61780862356836 2.69933132793812 2.55485517094515 2.43497252200529 2.44653640253991 2.48151815101293 2.49773696872863 2.50079625235942 2.50120860516527 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000003 2.50125000000028 2.5012500000182 2.50125000434012 2.50125007153435 2.50125105382605 2.50126346079163 2.50139524256898 2.50254581648997 2.51073677161098 2.56610523926074 2.65768660392064 2.65880959978582 2.41047158327002 2.41106472868149 2.38625325471017 2.44960130899801 2.48980101389211 2.4998841196465 2.5011262067898 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.50125000000019 2.50125000000069 2.50125000144677 2.50125002791756 2.50125041285163 2.50125537284517 2.50130958235193 2.50179900747008 2.50556734382904 2.52802775493076 2.57717913229549 2.57864147003224 2.42300348704699 2.3255170508452 2.40681498877393 2.46763936033499 2.49655733092353 2.50061288441882 2.50119352687678 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.5012500000002 2.50125000000137 2.50125000006276 2.50125000541491 2.50125008705381 2.50125120703639 2.50126445379924 2.50139325735607 2.50245611410893 2.50766412552353 2.52043420731202 2.49667247303931 2.43043797109993 2.43033312835882 2.46269285383627 2.49021346842436 2.49989147540614 2.50108264763972 2.50123606271224 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.50125000000029 2.50125000000141 2.5012500001105 2.50125000784542 2.50125011702333 2.5012514223186 2.50126476506004 2.50138111223633 2.5018928361204 2.50251205873859 2.49735179322433 2.47019838289855 2.46890334481788 2.49190686838901 2.49958710649339 2.50105349350361 2.50122923547577 2.5012483627831 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000008 2.50125000000056 2.5012500000024 2.50125000025974 2.50125001186173 2.50125015589578 2.50125183110637 2.50126306378461 2.50130129398167 2.50122858825548 2.50008489949827 2.49546282696764 2.49682448684247 2.50005050747356 2.50105680700469 2.5012273590531 2.50124772062979 2.50124982581343 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000015 2.50125000000106 2.50125000000838 2.50125000028106 2.50125001172982 2.50125013817773 2.50125096460355 2.50125291248269 2.5012300469346 2.50100739722733 2.50048266610527 2.50072548421163 2.50111045089317 2.50123083517498 2.50124783783764 2.5012497936218 2.50124998481849 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.50125000000026 2.501250000002 2.50125000001491 2.50125000042879 2.501250008326 2.50125005650423 2.50125007876265 2.50124682117098 2.50122431047049 2.50116057481646 2.50119634710122 2.50123669082792 2.50124837567717 2.50124982246344 2.50124998368045 2.50124999944159 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.50125000000026 2.50125000000208 2.5012500000151 2.50125000028432 2.50125000269466 2.50124999263487 2.50124958613231 2.50124749450129 2.50124142347308 2.50124533169626 2.50124891941722 2.50124987858141 2.5012499872019 2.50124999948039 2.50124999998684 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000019 2.50125000000131 2.5012500000021 2.50124999999692 2.50124999894883 2.50124996736495 2.50124979368705 2.50124930097167 2.50124964727483 2.50124992342969 2.50124999225766 2.50124999968525 2.50124999999299 2.5012499999979 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000013 2.50125000000015 2.5012499999972 2.50124999995763 2.50124999813591 2.50124998499999 2.50124995024563 2.50124997624893 2.50124999531872 2.50124999988657 2.5012499999983 2.50124999999894 2.50124999999972 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000002 2.50124999999968 2.50124999999694 2.50124999998585 2.50124999935226 2.50124999695871 2.50124999882667 2.50124999996222 2.50124999999931 2.50124999999957 2.50124999999983 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999999 2.5012499999996 2.50124999999819 2.50124999999872 2.50124999999982 2.50124999999959 2.50124999999891 2.50124999999984 2.50124999999994 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999995 2.50124999999966 2.50124999999965 2.50124999999988 2.50124999999986 2.50124999999984 2.50124999999998 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999998 2.50124999999994 2.50124999999998 2.50124999999997 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 +D/cons.4.00.000050.dat 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000019 2.50125000000149 2.50125000000902 2.50125000020633 2.50125000859586 2.50125009990995 2.50125092798522 2.50125776827054 2.50128036655153 2.50129708958141 2.50126533269354 2.50125314647192 2.50125007738619 2.50124998457466 2.50124999632175 2.5012499998296 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000012 2.50125000000088 2.50125000000571 2.50125000023407 2.50125001079274 2.50125013543255 2.50125146090047 2.50126344310427 2.50135289962077 2.50163610354759 2.50179860589056 2.5014236886659 2.50127444509615 2.50124926343659 2.50124954449979 2.50124992711244 2.50124999342688 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000005 2.50125000000047 2.50125000000233 2.50125000016886 2.50125000974817 2.50125013568922 2.50125162909082 2.5012666868019 2.50139886037906 2.50222162635358 2.50463861534345 2.5053487507676 2.50239328912011 2.50134986739888 2.50122473399134 2.50124235065826 2.50124880357281 2.50124990617146 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000003 2.5012500000002 2.50125000000111 2.50125000007452 2.50125000684156 2.5012501092209 2.5012514256506 2.50126610663117 2.50140632378477 2.50261948497485 2.50943626831346 2.53005146739478 2.52870573913042 2.50549044286766 2.50094612786944 2.50087435385203 2.50115718626278 2.50123541558689 2.50124889133073 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.5012500000002 2.50125000000126 2.50125000003776 2.50125000445301 2.50125007528898 2.50125107618295 2.50126347940734 2.50139317001159 2.50245627919361 2.51195940275518 2.54355698064923 2.57786319463593 2.5730014865444 2.50700771146297 2.48944703638311 2.49662488468056 2.50029031600907 2.50113896366904 2.50124042343811 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.5012500000002 2.50125000000074 2.50125000132217 2.50125002628312 2.50125039654668 2.50125528862459 2.50131036132202 2.50182751369159 2.50564075098523 2.53904839612585 2.61444433253171 2.69066666706893 2.55195835754466 2.43777436395064 2.44785679958712 2.48177910712744 2.49774287304 2.50079856685968 2.50120874962168 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000003 2.50125000000028 2.5012500000177 2.50125000432556 2.50125007124179 2.50125104816922 2.50126336748043 2.50139400272701 2.50253154304987 2.51072514545815 2.56511359666288 2.64961750394873 2.65031375084002 2.41423737507538 2.41334373735842 2.390418609701 2.45073972457766 2.48985912754992 2.49989774064867 2.50112690010189 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.50125000000019 2.50125000000069 2.50125000144242 2.50125002783603 2.50125041133388 2.50125534837345 2.50130925656435 2.50179529201511 2.50555473341187 2.52761544929204 2.57507258951665 2.57498490631672 2.42539199948546 2.33205692040653 2.40887352247904 2.46786531789593 2.49657338192713 2.50061593937057 2.50119374462536 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.5012500000002 2.50125000000136 2.50125000006224 2.50125000540062 2.50125008679268 2.50125120249382 2.50126438404256 2.50139235105698 2.50244421006043 2.50763273607904 2.5201640049212 2.49688264557053 2.43308386834447 2.4318443444926 2.4631187724784 2.49026411723765 2.49989843655853 2.50108329283855 2.5012361056965 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000004 2.50125000000029 2.50125000000142 2.50125000010953 2.50125000782114 2.50125011663489 2.50125141680021 2.50126471651051 2.50138018414076 2.50188889250438 2.50249641619703 2.49739782312315 2.4705981402399 2.46917761136296 2.49193975463941 2.49959012150078 2.50105405245559 2.50122929440961 2.50124836675558 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000008 2.50125000000056 2.50125000000239 2.50125000025802 2.50125001182842 2.50125015540014 2.50125182468991 2.50126300024185 2.50130105183225 2.50122847792327 2.50009543120039 2.49551693731696 2.49683025880101 2.50005560250179 2.50105714178051 2.5012274064266 2.50124772543994 2.50124982615106 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000015 2.50125000000106 2.5012500000084 2.50125000027915 2.50125001169484 2.50125013774414 2.50125096075648 2.50125289911089 2.50123005858608 2.50100838217907 2.50049243783323 2.50072761576767 2.50111087628943 2.50123086302127 2.50124784203058 2.50124979401072 2.50124998484546 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.50125000000026 2.50125000000201 2.50125000001496 2.5012500004273 2.50125000830271 2.50125005631218 2.50125007839928 2.50124683207181 2.50122441445761 2.50116129641358 2.50119652422962 2.50123672379515 2.5012483784002 2.50124982280454 2.50124998370906 2.50124999944361 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000002 2.50125000000026 2.50125000000208 2.50125000001513 2.50125000028291 2.50125000268667 2.5012499926477 2.50124958745734 2.50124750285244 2.50124147354123 2.50124534483427 2.50124892166211 2.50124987880481 2.50124998722627 2.50124999948208 2.50124999998688 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000019 2.50125000000132 2.50125000000211 2.50124999999693 2.5012499989515 2.50124996745384 2.50124979425801 2.50124930398169 2.5012496481016 2.50124992356497 2.5012499922734 2.50124999968645 2.50124999999297 2.50124999999791 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000014 2.50125000000015 2.50124999999721 2.50124999995766 2.50124999814137 2.50124998503333 2.50124995040657 2.50124997629505 2.50124999532647 2.50124999988714 2.50124999999831 2.50124999999894 2.50124999999972 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125000000001 2.50125000000002 2.50124999999968 2.50124999999695 2.5012499999859 2.50124999935426 2.50124999696732 2.50124999882923 2.50124999996242 2.50124999999932 2.50124999999957 2.50124999999983 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999999 2.5012499999996 2.50124999999819 2.50124999999873 2.50124999999982 2.50124999999959 2.50124999999891 2.50124999999984 2.50124999999994 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999995 2.50124999999966 2.50124999999965 2.50124999999988 2.50124999999986 2.50124999999985 2.50124999999998 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50124999999998 2.50124999999994 2.50124999999998 2.50124999999997 2.50124999999999 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 2.50125 D/cons.5.00.000000.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 D/cons.5.00.000050.dat 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 D/ib_markers.00.dat 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \ No newline at end of file