CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   What does “Mean Wall Shear Stress” mean? (https://www.cfd-online.com/Forums/fluent/68353-what-does-mean-wall-shear-stress-mean.html)

dfytanid September 16, 2009 08:15

What does “Mean Wall Shear Stress” mean?
 
Hello,
I am running an unsteady simulation and I have a question about unsteady wall statistics.

Having already activated the data sampling from the iteration menu I use the Unsteady wall statistics and more specificly the Mean wall shear stress option from Display/Contours../ .
And now the question is: How does fluent calculate this “Mean” values??
Is it the mean from the magnitudes of the shear vectors or
the magnitude of the mean shear vector?? (Please see the following equations)

Mean WSS=\frac{\sum|\vec{WSS}|_{t}}{number of time steps} or

Mean WSS=\frac{|\sum\vec{WSS}_{t}|}{number of time steps}


In some cases it is the same but in my case I have a variable velocity inlet (with positive and negative values) and thus the Shear Vector change direction.

Thank you for your answers,
Dim

amindari October 14, 2016 09:19

hey
 
HEY dim
have you found the answer?

dfytanid October 14, 2016 13:16

Quote:

Originally Posted by amindari (Post 621524)
HEY dim
have you found the answer?

Yeap. What Fluent calculates is the average wss magnitude.
The magnitude of the average wall shear stress vector has to be calculated either using a UDF or in a post-processing tool(.e.g Post-CFD, tecplot etc).
regards,
Dimitrios

vasava October 17, 2016 01:05

Are you calculating OSI? If so, it would be interesting to know your approach.

dfytanid November 6, 2016 20:19

Quote:

Originally Posted by vasava (Post 621722)
Are you calculating OSI? If so, it would be interesting to know your approach.

I am really sorry for my late answer.
I was traveling and I missed this one.

Well... over the years I have tried both approaches (use of udfs/UDMs vs tecplot/matlab) and I would say that I really prefer the first one, since this way you can avoid problems related to the need of saving huge amount of data over time to avoid introducing errors in the osi/rrt calculations.

Unfortunately, I don't have the code I used while I was working on biofluids because I have moved to another institution but it shouldn't be very different from the following:


Code:

#include "udf.h"          /**** mandatory
#include "math.h"      /**** probably not necessary but I always include it
#include "storage.h"    /**** you need it
#include "sg_udms.h"  /**** you will need this one too


#define domain_ID 1    /***** put here your domain ID (fluid??)
#define zone_ID 7      /****** put here your zone ID (WALL??)



/**** initialize our UDMS
DEFINE_INIT(init,domain)
{
    Thread *c_thread;
    cell_t c;
 
    thread_loop_c(c_thread,domain)
    {
        begin_c_loop(c, c_thread)
        {
            C_UDMI(c,c_thread,0)= 0;  /* cumulative wss magnitude
            C_UDMI(c,c_thread,1)= 0;    /* cumulative x-component of wss
            C_UDMI(c,c_thread,2)= 0;    /* cumulative y-component of wss
            C_UDMI(c,c_thread,3)= 0;  /* cumulative z-component of wss
            C_UDMI(c,c_thread,4)= 0;    /* osi
        }
        end_c_loop(c, c_thread)
    }
}



/**** calculate OSI
DEFINE_EXECUTE_AT_END(OSI)
{
    Domain *domain;
    real AREA;
    face_t f;
    real A[ND_ND];
    cell_t c, c0;
    Thread *t,*t0, *c_thread;
    real BEDSHEAR[ND_ND];
 
    domain = Get_Domain(domain_ID);
    t = Lookup_Thread(domain,zone_ID);
 
    begin_f_loop(f, t)
    {
        F_AREA(A,f,t);
      AREA = NV_MAG(A);
        NV_V(BEDSHEAR,=,F_STORAGE_R_N3V(f,t, SV_WALL_SHEAR));
        c0 = F_C0(f,t);
        t0 = THREAD_T0(t);
        C_UDMI(c0,t0,0) += NV_MAG(BEDSHEAR)/area;
        C_UDMI(c0,t0,1) += -BEDSHEAR[0]/area;
        C_UDMI(c0,t0,2) += -BEDSHEAR[1]/area;
        C_UDMI(c0,t0,3) += -BEDSHEAR[2]/area;
        C_UDMI(c0,t0,4) = 0.5*(1.-sqrt(pow(C_UDMI(c0,t0,1), 2) + pow(C_UDMI(c0,t0,2),2) + pow(C_UDMI(c0,t0,3), 2))/C_UDMI(c0,t0,0));
    }
    end_f_loop(f,t)
}

You can also find more info in the post by khuti from where I found pieces of the code above.

I hope it works for you too.

some more tips:
1. You may want to exclude the initial period(s) from the osi computation as the results will be affected by you initial conditions (u=v=q=p=0??).
2. Keep monitoring OSI/ RRT statistics (max, min, average) to make sure that your results are period independent.

Best regards,
Dimitrios


All times are GMT -4. The time now is 16:30.