Author Topic: Solution renumbering as a macro  (Read 7675 times)

jonwong

  • Jr. Member
  • **
  • Posts: 13
Solution renumbering as a macro
« on: July 31, 2012, 10:33:01 PM »
Hi-

I have developed a sparse matrix vector multiplication algorithm that requires reordering the columns and rows of A, the elements of x and the elements in y in the problem A*x = y. The reordering is necessary for the particular GPU architecture this method is aimed at. Basically the rows of A are rearranged yielding A'*x=y'. However x is no longer consistently number in accordance with y', so the columns of A' and the elements of x are rearranged such that A''*x'=y', where the x' and y' numbering is consistent.

Currently, I am using custom usolve and uasble routines for a full matrix and I am using whatever numbering FEAP gives me. I wanted to know how one would go about reordering the ids in FEAP, in such a way so that FEAP will return x'. However, if possible, I would like to avoid modifying my imposed boundary conditions for the mesh, as the displacement boundary conditions are non-trivially defined. Basically I wanted to know if there is a good way to go about doing this without having to change the input file, as I would like to compare it to serial and parallel version of FEAP.

Thanks,
-Jon

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 993
Re: Solution renumbering as a macro
« Reply #1 on: August 01, 2012, 09:57:13 AM »
Equation renumbering is handled by a nodal renumbering array mr(np(89)).  Search for [opti] in pmacr3.f and you will find the code sequence that executes the renumbering, the resetting of the equation numbers etc.

jonwong

  • Jr. Member
  • **
  • Posts: 13
Re: Solution renumbering as a macro
« Reply #2 on: August 08, 2012, 03:46:15 AM »
Thanks I will look into this. I haven't looked at the code in detail yet, but does FEAP renumber nodes when displacement conditions are changed at subsequent timesteps? I see there are calls to optid() and psetid is subsequently called.