Changeset 5209


Ignore:
Timestamp:
08/12/10 15:41:58 (15 years ago)
Author:
seroussi
Message:

spc border of macayeal and pattyn

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp

    r5057 r5209  
    3434        IoModelFetchData(&iomodel->spcvelocity,NULL,NULL,iomodel_handle,"spcvelocity");
    3535        IoModelFetchData(&iomodel->gridonhutter,NULL,NULL,iomodel_handle,"gridonhutter");
     36        IoModelFetchData(&iomodel->gridonmacayeal,NULL,NULL,iomodel_handle,"gridonmacayeal");
     37        IoModelFetchData(&iomodel->gridonpattyn,NULL,NULL,iomodel_handle,"gridonpattyn");
     38        IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
    3639
    3740        /*Initialize counter: */
     
    4245                if(iomodel->my_vertices[i]){
    4346
    44                         if ((int)iomodel->spcvelocity[6*i+0] || (int)iomodel->gridonhutter[i]){
    45                                 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,*(iomodel->spcvelocity+6*i+3)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
    46                                 count++;
     47                        /*Start with adding spcs of coupling: zero at the border macayeal/pattyn for the appropriate dofs*/
     48                        if ((int)iomodel->vertices_type[2*i+0]==MacAyealPattynApproximationEnum){
     49                                /*If grionmacayeal, spc pattyn dofs: 3 & 4*/
     50                                        if ((int)iomodel->gridonpattyn[i]){
     51                                                constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
     52                                                count++;
     53                                                constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
     54                                                count++;
     55                                        }
     56                                        else if ((int)iomodel->gridonmacayeal[i]){
     57                                                constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
     58                                                count++;
     59                                                constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,4,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
     60                                                count++;
     61                                        }
     62                                        else ISSMERROR("if vertices_type is MacAyealPattyn, you shoud have gridonpattyn or gridonmacayeal");
    4763                        }
    48                        
    49                         if ((int)iomodel->spcvelocity[6*i+1] || (int)iomodel->gridonhutter[i]){
    50                                 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,*(iomodel->spcvelocity+6*i+4)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
    51                                 count++;
     64                        /*Now add the regular spcs*/
     65                        else{
     66                                if ((int)iomodel->spcvelocity[6*i+0] || (int)iomodel->gridonhutter[i]){
     67                                        constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,*(iomodel->spcvelocity+6*i+3)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
     68                                        count++;
     69                                }
     70                               
     71                                if ((int)iomodel->spcvelocity[6*i+1] || (int)iomodel->gridonhutter[i]){
     72                                        constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,*(iomodel->spcvelocity+6*i+4)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
     73                                        count++;
     74                                }
    5275                        }
    5376                }
     
    5780        xfree((void**)&iomodel->spcvelocity);
    5881        xfree((void**)&iomodel->gridonhutter);
     82        xfree((void**)&iomodel->gridonmacayeal);
     83        xfree((void**)&iomodel->gridonpattyn);
     84        xfree((void**)&iomodel->vertices_type);
    5985
    6086        /*penalty loads: */
Note: See TracChangeset for help on using the changeset viewer.