Ignore:
Timestamp:
09/13/10 13:18:07 (15 years ago)
Author:
Eric.Larour
Message:

New solution strategy, based on creation of Kff, Kfs directly,
instead of Kgg. Idem for pf instead of pg.
Kept backwards compatibility for now, and only applied to macayeal diagnostic
in 2d. Will switch to this new strategy in the near future.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Loads/Numericalflux.cpp

    r5741 r5772  
    328328/*}}}*/
    329329/*FUNCTION Numericalflux::CreateKMatrix {{{1*/
    330 void  Numericalflux::CreateKMatrix(Mat Kgg){
     330void  Numericalflux::CreateKMatrix(Mat Kgg,Mat Kff, Mat Kfs){
    331331
    332332        int type;
     
    349349/*}}}*/
    350350/*FUNCTION Numericalflux::CreatePVector {{{1*/
    351 void  Numericalflux::CreatePVector(Vec pg){
     351void  Numericalflux::CreatePVector(Vec pg,Vec pf){
    352352
    353353        int type;
     
    374374/*}}}*/
    375375/*FUNCTION Numericalflux::PenaltyCreateKMatrix {{{1*/
    376 void  Numericalflux::PenaltyCreateKMatrix(Mat Kgg,double kmax){
     376void  Numericalflux::PenaltyCreateKMatrix(Mat Kgg,Mat Kff, Mat Kfs,double kmax){
    377377
    378378        /*No stiffness loads applied, do nothing: */
     
    382382/*}}}*/
    383383/*FUNCTION Numericalflux::PenaltyCreatePVector{{{1*/
    384 void  Numericalflux::PenaltyCreatePVector(Vec pg,double kmax){
     384void  Numericalflux::PenaltyCreatePVector(Vec pg,Vec pf,double kmax){
    385385
    386386        /*No penalty loads applied, do nothing: */
     
    417417
    418418        GetVerticesCoordinates(&xyz_list[0][0], nodes,NUMVERTICES_INTERNAL);
    419         GetDofList(&doflist);
     419        GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    420420
    421421        /*Retrieve all inputs and parameters we will be needing: */
     
    523523        }
    524524
    525         GetDofList(&doflist);
     525        GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    526526
    527527        /* Start  looping on the number of gaussian points: */
     
    617617        }
    618618
    619         GetDofList(&doflist);
     619        GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    620620
    621621        /* Start  looping on the number of gaussian points: */
     
    646646/*}}}*/
    647647/*FUNCTION Numericalflux::GetDofList {{{1*/
    648 void  Numericalflux::GetDofList(int** pdoflist){
     648void  Numericalflux::GetDofList(int** pdoflist,int approximation,int setenum){
    649649
    650650        int i,j;
     
    671671        /*Figure out size of doflist: */
    672672        for(i=0;i<numberofnodes;i++){
    673                 numberofdofs+=nodes[i]->GetNumberOfDofs();
     673                numberofdofs+=nodes[i]->GetNumberOfDofs(approximation,setenum);
    674674        }
    675675
     
    680680        count=0;
    681681        for(i=0;i<numberofnodes;i++){
    682                 nodes[i]->GetDofList(doflist+count);
    683                 count+=nodes[i]->GetNumberOfDofs();
     682                nodes[i]->GetDofList(doflist+count,approximation,setenum);
     683                count+=nodes[i]->GetNumberOfDofs(approximation,setenum);
    684684        }
    685685
Note: See TracChangeset for help on using the changeset viewer.