2nd resolution Wave_t_ex

Christophe Geuzaine Christophe.Geuzaine at ulg.ac.be
Wed Jun 6 21:23:04 CEST 2001


Lin Ji wrote:
> 
> Hi, Christophe,
>     I did not see the big warning about the second scheme in your last email.
> Now, I read about it. But, I still don't quite understand how to assemble the
> source. I do express TimeFct[] and dfdt[] in the same order as in your
> example:
> 
>   yo[]=1/(ct*cy*Sqrt[2*3.1416])*Exp[-(($Time-t0)^2/(ct^2)+(Y[]-y0)^2/(cy^2)
>        )];
>   yo2[]=Cos[gr*($Time-t0)]*yo[];
>   TimeFct[] = yo[];
>   // TimeFct[] = ( (X[]<.03)  )? yo[] : 0 ;
> 
>   dfdt[] = TimeFct[] ;
> 
>   SaveFct[] = !($TimeStep % 2) ;
> 
> instead of 'TimeFct[] = dfdt[];'. It seems I have to set 'TimeFct[] =
> dfdt[]/dfdt[t==t0]' in order to make 'dfdt[t==t0]*TimeFct[]' the correct
> source as you explained in the email. 

Yes, that's one way to do it. 

> Does that mean dfdt[t==t0] can not be
> zero? Please help.
> 

Not necessarily: you only have to impose the spatial kind of
distribution you want in the formulation, and modulate by whatever time
function you want in the resolution (i.e. in 'Update[]'). In other
words, with the second kind of resolution, 'dfdt[]' is evaluated only
once at the begining of the processing (at a moment when the time loop
is not even started: check the position of 'GenerateSeparate[]' in the
resolution). It should of course not be equal to zero: but that's no
issue since the time function is specified in the 'Update[]'.

Anyway, if you feel uncomfortable with the second kind of resolution,
just use the first one. This one is the classical (but not very
effective) way to solve the problem. BTW, to speed up the computation,
you may also set the 'Re_Use_ILU' flag to 1 in your SOLVER.PAR file.
This will prevent the incomplete decomposition of the matrix to be
computed at each time step.

Christophe

-- 
Christophe Geuzaine

Tel: 32 (0) 4 366 37 10    http://geuz.org
Fax: 32 (0) 4 366 29 10    mailto:Christophe.Geuzaine at ulg.ac.be