Author Topic: usolve.f disable subsequent calls to iters... etc  (Read 7636 times)

jonwong

  • Jr. Member
  • **
  • Posts: 13
usolve.f disable subsequent calls to iters... etc
« on: August 08, 2012, 03:40:58 AM »
I wrote a custom solver in usolve.f for the serial version of FEAP. I set 'solver = .false.' in a separate user macro.

The solver works fine, however, I've noticed that at each tangent call, iters() is called. However, for this particular problem, I know the connectivity and mesh remain the same. Therefore, the arrays jc, and ir, should rename constant. Is there a proper way for disabling subsequent calls to matrix allocation and subsequent iters calls?

I am currently running benchmarks for these GPU replacements for pform and usolve and while the total simulation time reported by the FEAP logfile is 16 seconds, my benchmark code reveals that my replacement subroutines only take 8 seconds. If possible, I'd like to minimize the other 8 seconds, and perhaps disabling the wasted reallocation should do the trick. The only solution commands I have in my input file are loop, time, next, and tang, so it is very minimal.

Thanks.

jonwong

  • Jr. Member
  • **
  • Posts: 13
Re: usolve.f disable subsequent calls to iters... etc
« Reply #1 on: August 08, 2012, 09:19:20 PM »
It appears I can disable the call to iters() for my modified pform assembly, but it is necessary if I want to use FEAP to handle the assembly of user element routines.

Does iters() assemble the jc and ir (column indices and row offsets) also for the parallel version of feap?

Thanks.

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 993
Re: usolve.f disable subsequent calls to iters... etc
« Reply #2 on: August 09, 2012, 08:50:20 AM »
parfeap does not use these.  The equation data is handled in the 'standard' way and then special data structures (read in through parfeap/pdomain.F) are used to handle the assemble information for the global equations.