- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm using the Pardiso sparse solver (i.e. with the ia, ja and aa arrays storage structure)for a finite element code I have written. The problem I solve with this ishighly non-linear so the stiffness matrix changes on almost every iteration of the algorithm.
The stiffness matrix (K)is established by assembly of smallerelement stiffness matrices (Ke)to appropriate positions in aa. TheKe matrices areusually fully dense. The way I do this now is by setting up an index array for each element at the start of the algorithm, which I then use to assemble rows of Ke to K (stored in aa) at each iteration.
I suspect that this indexing might be slow, but any other method I have thought of includes a lot of index searching and I suspect that to be even slower (at least if I write it myself).
Does anyone know or have any experience with this, and if it is possible to speed this up?
Cheers!
I'm using the Pardiso sparse solver (i.e. with the ia, ja and aa arrays storage structure)for a finite element code I have written. The problem I solve with this ishighly non-linear so the stiffness matrix changes on almost every iteration of the algorithm.
The stiffness matrix (K)is established by assembly of smallerelement stiffness matrices (Ke)to appropriate positions in aa. TheKe matrices areusually fully dense. The way I do this now is by setting up an index array for each element at the start of the algorithm, which I then use to assemble rows of Ke to K (stored in aa) at each iteration.
I suspect that this indexing might be slow, but any other method I have thought of includes a lot of index searching and I suspect that to be even slower (at least if I write it myself).
Does anyone know or have any experience with this, and if it is possible to speed this up?
Cheers!
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
The problem you described is really general and depends from type of dimension of problem (1D, 2D, 3D), type of finite elements (their domain and unknowns points) and domain of your problem.In some cases there is simple way of global numbering, but in common this problem is really hard.
With best regards,
Alexander Kalinkin

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page