Revision 1388 - (hide annotations)
Fri Jan 11 07:45:58 2008 UTC (11 years, 9 months ago) by trankine
File MIME type: text/plain
File size: 7699 byte(s)
```And get the *(&(*&(* name right
```
 1 ksteube 1312 2 /* \$Id\$ */ 3 4 /******************************************************* 5 * 6 * Copyright 2003-2007 by ACceSS MNRF 7 * Copyright 2007 by University of Queensland 8 * 9 * http://esscc.uq.edu.au 10 * Primary Business: Queensland, Australia 11 * Licensed under the Open Software License version 3.0 12 * http://www.opensource.org/licenses/osl-3.0.php 13 * 14 *******************************************************/ 15 16 jgs 150 /**************************************************************/ 17 18 /* Finley: SystemMatrix and SystemVector */ 19 20 /* adds the matrix array[Equa,Sol,NN,NN] onto the matrix in. */ 21 /* the rows/columns are given by */ 22 /* i_Equa+Equa*Nodes_Equa[Nodes[j_Equa]] (i_Equa=0:Equa; j_Equa=0:NN_Equa). */ 23 /* the routine has to be called from a parallel region */ 24 25 /* This routine assumes that in->Equa=in->Sol=1, i.e. */ 26 /* array is fully packed. */ 27 /* TODO: the case in->Equa!=1 */ 28 29 /**************************************************************/ 30 31 #include "Assemble.h" 32 ksteube 1312 #include "IndexList.h" 33 jgs 150 34 /**************************************************************/ 35 36 void Finley_Assemble_addToSystemMatrix(Paso_SystemMatrix* in,dim_t NN_Equa,index_t* Nodes_Equa, dim_t num_Equa, 37 ksteube 1312 dim_t NN_Sol,index_t* Nodes_Sol, dim_t num_Sol, double* array) { 38 gross 416 index_t index_offset=(in->type & MATRIX_FORMAT_OFFSET1 ? 1:0); 39 ksteube 1312 dim_t k_Equa,j_Equa,j_Sol,k_Sol,i_Equa,i_Sol,l_col,l_row,ic,ir,index,k,i_row, i_col; 40 index_t *mainBlock_ptr, *mainBlock_index, *coupleBlock_ptr, *coupleBlock_index; 41 double *mainBlock_val, *coupleBlock_val; 42 jgs 150 dim_t row_block_size=in->row_block_size; 43 dim_t col_block_size=in->col_block_size; 44 dim_t block_size=in->block_size; 45 dim_t num_subblocks_Equa=num_Equa/row_block_size; 46 dim_t num_subblocks_Sol=num_Sol/col_block_size; 47 ksteube 1312 dim_t numMyCols=in->pattern->mainPattern->numInput; 48 dim_t numMyRows=in->pattern->mainPattern->numOutput; 49 jgs 150 50 ksteube 1312 51 gross 416 if (in->type & MATRIX_FORMAT_CSC) { 52 ksteube 1312 /* MATRIX_FORMAT_CSC does not support MPI !!!!! */ 53 mainBlock_ptr=in->mainBlock->pattern->ptr; 54 mainBlock_index=in->mainBlock->pattern->index; 55 mainBlock_val=in->mainBlock->val; 56 gross 416 for (k_Sol=0;k_Soltype & MATRIX_FORMAT_TRILINOS_CRS) { 82 /* this needs to be modified */ 83 #ifdef TRILINOS 84 for (k_Equa=0;k_EquamainBlock->pattern->output_node_distribution->numLocal) { 87 for (k_Sol=0;k_Soltrilinos_data, irow, icol, array[INDEX4(l_row,l_col,k_Equa,k_Sol,num_Equa,num_Sol,NN_Equa)]); 95 } 96 } 97 } 98 } 99 } 100 #endif 101 gross 416 } else { 102 ksteube 1312 103 mainBlock_ptr=in->mainBlock->pattern->ptr; 104 mainBlock_index=in->mainBlock->pattern->index; 105 mainBlock_val=in->mainBlock->val; 106 coupleBlock_ptr=in->coupleBlock->pattern->ptr; 107 coupleBlock_index=in->coupleBlock->pattern->index; 108 coupleBlock_val=in->coupleBlock->val; 109 110 for (k_Equa=0;k_Equa

## Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision