tdisable debug output, add experimental underrelaxation - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
 (HTM) git clone git://src.adamsgaard.dk/sphere
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit e08f102fd3b8c54eb79e648b16dacc9a5d7e1207
 (DIR) parent fe438fd43b79359a6b4f1877f366fb1b0e4f066d
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Sun,  9 Nov 2014 21:13:12 +0100
       
       disable debug output, add experimental underrelaxation
       
       Diffstat:
         M src/darcy.cuh                       |       7 +++++++
         M src/device.cu                       |       4 ++++
       
       2 files changed, 11 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/src/darcy.cuh b/src/darcy.cuh
       t@@ -898,6 +898,10 @@ __global__ void updateDarcySolution(
                        (z == wall0_iz))
                    p_new = p;
        
       +        // add relaxation
       +        const Float theta = 0.1;
       +        p_new = p*(1.0-theta) + p_new*theta;
       +
                // normalized residual, avoid division by zero
                //const Float res_norm = (p_new - p)*(p_new - p)/(p_new*p_new + 1.0e-16);
                const Float res_norm = (p_new - p)/(p + 1.0e-16);
       t@@ -912,10 +916,13 @@ __global__ void updateDarcySolution(
                        "p_old       = %e\n"
                        "dp_diff     = %e\n"
                        "dp_forc     = %e\n"
       +                "dphi        = %e\n"
       +                "dphi/dt     = %e\n"
                        "res_norm    = %e\n",
                        x,y,z,
                        p_new, p, p_old,
                        dp_diff, dp_forc,
       +                dphi, dphi/(ndem*devC_dt),
                        res_norm);
        #endif
        
 (DIR) diff --git a/src/device.cu b/src/device.cu
       t@@ -1916,6 +1916,10 @@ __host__ void DEM::startTime()
        
                            for (unsigned int nijac = 0; nijac<darcy.maxiter; ++nijac) {
        
       +#if defined(REPORT_EPSILON) || defined(REPORT_FORCING_TERMS)
       +                std::cout << "\n\n### Jacobi iteration " << nijac << std::endl;
       +#endif
       +
                                if (nijac == 0) {
                                    if (PROFILING == 1)
                                        startTimer(&kernel_tic);