Changeset 3699


Ignore:
Timestamp:
05/10/10 16:38:13 (15 years ago)
Author:
Eric.Larour
Message:

New UpdateInput modules

Location:
issm/trunk/src/c
Files:
5 added
2 deleted
17 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/DataSet/DataSet.cpp

    r3685 r3699  
    13471347}
    13481348/*}}}*/
    1349 /*FUNCTION DataSet::UpdateInputs{{{2*/
    1350 void  DataSet::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     1349/*FUNCTION DataSet::UpdateInputsFromVector{{{2*/
     1350void  DataSet::UpdateInputsFromVector(double* vector, int name, int type){
    13511351
    13521352        vector<Object*>::iterator object;
    13531353        Element* element=NULL;
     1354        Node* node=NULL;
     1355        Vertex* vertex=NULL;
     1356        Load* load=NULL;
     1357        Material* material=NULL;
     1358        Param* param=NULL:
    13541359
    13551360        for ( object=objects.begin() ; object < objects.end(); object++ ){
     
    13581363
    13591364                        element=(Element*)(*object);
    1360                         element->UpdateInputs(solution,analysis_type,sub_analysis_type);
     1365                        element->UpdateInputsFromVector(vector,name,type);
     1366                }
     1367                else if(((*object)->Enum()==NodeEnum)){
     1368
     1369                        node=(Node*)(*object);
     1370                        node->UpdateInputsFromVector(vector,name,type);
     1371                }
     1372                else if(((*object)->Enum()==VertexEnum)){
     1373
     1374                        vertex=(Vertex*)(*object);
     1375                        vertex->UpdateInputsFromVector(vector,name,type);
     1376                }
     1377                else if(EnumIsLoad((*object)->Enum())){
     1378
     1379                        load=(Load*)(*object);
     1380                        load->UpdateInputsFromVector(vector,name,type);
     1381                }
     1382                else if(EnumIsMaterial((*object)->Enum())){
     1383
     1384                        material=(Material*)(*object);
     1385                        material->UpdateInputsFromVector(vector,name,type);
     1386                }
     1387                else if(((*object)->Enum()==ParamEnum)){
     1388
     1389                        param=(Param*)(*object);
     1390                        param->UpdateInputsFromVector(vector,name,type);
     1391                }
     1392                else ISSMERROR("%s%i%s"," object with id: ",(*object)->Id()," is not an element, in a function that deals only with elements!");
     1393        }
     1394}
     1395/*}}}*/
     1396/*FUNCTION DataSet::UpdateInputsFromSolution{{{2*/
     1397void  DataSet::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){
     1398
     1399        vector<Object*>::iterator object;
     1400        Element* element=NULL;
     1401
     1402        for ( object=objects.begin() ; object < objects.end(); object++ ){
     1403
     1404                if(EnumIsElement((*object)->Enum())){
     1405
     1406                        element=(Element*)(*object);
     1407                        element->UpdateInputsFromSolution(solution,analysis_type,sub_analysis_type);
    13611408                }
    13621409                else ISSMERROR("%s%i%s"," object with id: ",(*object)->Id()," is not an element, in a function that deals only with elements!");
  • issm/trunk/src/c/DataSet/DataSet.h

    r3685 r3699  
    7171                void  CreateKMatrix(Mat Kgg, int analysis_type,int sub_analysis_type);
    7272                void  CreatePVector(Vec pg, int analysis_type,int sub_analysis_type);
    73                 void  UpdateInputs(double* solution,int analysis_type,int sub_analysis_type);
     73                void  UpdateInputsFromVector(double* vector,int name, int type);
     74                void  UpdateInputsFromSolution(double* solution,int analysis_type,int sub_analysis_type);
    7475                void  AddInput(double value, int enum_type);
    7576                void  PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r3697 r3699  
    213213        StabilizeConstraintsEnum,
    214214        PenaltyOffsetEnum,
     215        ConstantEnum
    215216        /*}}}*/
    216217        /*Parameters{{{1*/
  • issm/trunk/src/c/Makefile.am

    r3685 r3699  
    289289                                        ./Gradjx/Gradjx.h\
    290290                                        ./Gradjx/Gradjx.cpp\
    291                                         ./UpdateInputsx/UpdateInputsx.h\
    292                                         ./UpdateInputsx/UpdateInputsx.cpp\
     291                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h\
     292                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp\
     293                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h\
     294                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp\
    293295                                        ./UpdateGeometryx/UpdateGeometryx.h\
    294296                                        ./UpdateGeometryx/UpdateGeometryx.cpp\
     
    712714                                        ./Gradjx/Gradjx.h\
    713715                                        ./Gradjx/Gradjx.cpp\
    714                                         ./UpdateInputsx/UpdateInputsx.h\
    715                                         ./UpdateInputsx/UpdateInputsx.cpp\
     716                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h\
     717                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp\
     718                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h\
     719                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp\
    716720                                        ./UpdateGeometryx/UpdateGeometryx.h\
    717721                                        ./UpdateGeometryx/UpdateGeometryx.cpp\
     
    882886bin_PROGRAMS =
    883887else
    884 bin_PROGRAMS = diagnostic.exe thermal.exe prognostic.exe prognostic2.exe balancedthickness.exe balancedthickness2.exe balancedvelocities.exe transient.exe steadystate.exe slopecompute.exe
     888dnl bin_PROGRAMS = diagnostic.exe thermal.exe prognostic.exe prognostic2.exe balancedthickness.exe balancedthickness2.exe balancedvelocities.exe transient.exe steadystate.exe slopecompute.exe
     889bin_PROGRAMS = diagnostic.exe
    885890endif
    886891
  • issm/trunk/src/c/modules.h

    r3684 r3699  
    2727#include "./ConfigureObjectsx/ConfigureObjectsx.h"
    2828#include "./SystemMatricesx/SystemMatricesx.h"
    29 #include "./UpdateInputsx/UpdateInputsx.h"
     29#include "./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h"
     30#include "./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h"
    3031#include "./UpdateGeometryx/UpdateGeometryx.h"
    3132#include "./UpdateVertexPositionsx/UpdateVertexPositionsx.h"
  • issm/trunk/src/c/objects/Elements/Beam.cpp

    r3687 r3699  
    291291}
    292292/*}}}*/
    293 /*FUNCTION Beam::UpdateInputs {{{1*/
    294 void  Beam::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     293/*FUNCTION Beam::UpdateInputsFromSolution {{{1*/
     294void  Beam::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){
    295295        ISSMERROR(" not supported yet!");
    296296}
  • issm/trunk/src/c/objects/Elements/Beam.h

    r3683 r3699  
    5858                void  CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
    5959                void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
    60                 void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
     60                void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
    6161                void  GetDofList(int* doflist,int* pnumberofdofs);
    6262                void  GetDofList1(int* doflist);
  • issm/trunk/src/c/objects/Elements/Element.h

    r3683 r3699  
    2828                virtual void   CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type)=0;
    2929                virtual void   CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type)=0;
    30                 virtual void   UpdateInputs(double* solution, int analysis_type, int sub_analysis_type)=0;
     30                virtual void   UpdateInputsFromSolutionFromSolution(double* solution, int analysis_type, int sub_analysis_type)=0;
    3131                virtual void   GetNodes(void** nodes)=0;
    3232                virtual void*  GetMatPar()=0;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r3687 r3699  
    358358}
    359359/*}}}*/
    360 /*FUNCTION Penta::UpdateInputs {{{1*/
    361 void  Penta::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
    362 
    363         /*Just branch to the correct UpdateInputs generator, according to the type of analysis we are carrying out: */
     360/*FUNCTION Penta::UpdateInputsFromSolution {{{1*/
     361void  Penta::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){
     362
     363        /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */
    364364        if (analysis_type==ControlAnalysisEnum){
    365365               
    366                 UpdateInputsDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
     366                UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
    367367        }
    368368        else if (analysis_type==DiagnosticAnalysisEnum){
     
    370370                if (sub_analysis_type==HorizAnalysisEnum){
    371371
    372                         UpdateInputsDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
     372                        UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
    373373                }
    374374                else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet");
     
    377377        else if (analysis_type==SlopecomputeAnalysisEnum){
    378378
    379                 UpdateInputsSlopeCompute( solution,analysis_type,sub_analysis_type);
     379                UpdateInputsFromSolutionSlopeCompute( solution,analysis_type,sub_analysis_type);
    380380        }
    381381        else if (analysis_type==PrognosticAnalysisEnum){
    382382
    383                 UpdateInputsPrognostic( solution,analysis_type,sub_analysis_type);
     383                UpdateInputsFromSolutionPrognostic( solution,analysis_type,sub_analysis_type);
    384384        }
    385385        else if (analysis_type==Prognostic2AnalysisEnum){
    386386
    387                 UpdateInputsPrognostic2(solution,analysis_type,sub_analysis_type);
     387                UpdateInputsFromSolutionPrognostic2(solution,analysis_type,sub_analysis_type);
    388388        }
    389389        else if (analysis_type==BalancedthicknessAnalysisEnum){
    390390
    391                 UpdateInputsBalancedthickness( solution,analysis_type,sub_analysis_type);
     391                UpdateInputsFromSolutionBalancedthickness( solution,analysis_type,sub_analysis_type);
    392392        }
    393393        else if (analysis_type==Balancedthickness2AnalysisEnum){
    394394
    395                 UpdateInputsBalancedthickness2( solution,analysis_type,sub_analysis_type);
     395                UpdateInputsFromSolutionBalancedthickness2( solution,analysis_type,sub_analysis_type);
    396396        }
    397397        else if (analysis_type==BalancedvelocitiesAnalysisEnum){
    398398
    399                 UpdateInputsBalancedvelocities( solution,analysis_type,sub_analysis_type);
     399                UpdateInputsFromSolutionBalancedvelocities( solution,analysis_type,sub_analysis_type);
    400400        }
    401401        else{
     
    405405}
    406406/*Object functions*/
    407 /*FUNCTION Penta::UpdateInputsDiagnosticHoriz {{{1*/
    408 void  Penta::UpdateInputsDiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){
     407/*FUNCTION Penta::UpdateInputsFromSolutionDiagnosticHoriz {{{1*/
     408void  Penta::UpdateInputsFromSolutionDiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){
    409409       
    410410       
     
    442442
    443443/*}}}*/
    444 /*FUNCTION Penta::UpdateInputsSlopeCompute {{{1*/
    445 void  Penta::UpdateInputsSlopeCompute(double* solution, int analysis_type, int sub_analysis_type){
     444/*FUNCTION Penta::UpdateInputsFromSolutionSlopeCompute {{{1*/
     445void  Penta::UpdateInputsFromSolutionSlopeCompute(double* solution, int analysis_type, int sub_analysis_type){
    446446        ISSMERROR(" not supported yet!");
    447447}
    448448/*}}}*/
    449 /*FUNCTION Penta::UpdateInputsPrognostic {{{1*/
    450 void  Penta::UpdateInputsPrognostic(double* solution, int analysis_type, int sub_analysis_type){
     449/*FUNCTION Penta::UpdateInputsFromSolutionPrognostic {{{1*/
     450void  Penta::UpdateInputsFromSolutionPrognostic(double* solution, int analysis_type, int sub_analysis_type){
    451451        ISSMERROR(" not supported yet!");
    452452}
    453453/*}}}*/
    454 /*FUNCTION Penta::UpdateInputsPrognostic2 {{{1*/
    455 void  Penta::UpdateInputsPrognostic2(double* solution, int analysis_type, int sub_analysis_type){
     454/*FUNCTION Penta::UpdateInputsFromSolutionPrognostic2 {{{1*/
     455void  Penta::UpdateInputsFromSolutionPrognostic2(double* solution, int analysis_type, int sub_analysis_type){
    456456        ISSMERROR(" not supported yet!");
    457457}
    458458/*}}}*/
    459 /*FUNCTION Penta::UpdateInputsBalancedthickness {{{1*/
    460 void  Penta::UpdateInputsBalancedthickness(double* solution, int analysis_type, int sub_analysis_type){
     459/*FUNCTION Penta::UpdateInputsFromSolutionBalancedthickness {{{1*/
     460void  Penta::UpdateInputsFromSolutionBalancedthickness(double* solution, int analysis_type, int sub_analysis_type){
    461461        ISSMERROR(" not supported yet!");
    462462}
    463463/*}}}*/
    464 /*FUNCTION Penta::UpdateInputsBalancedthickness2 {{{1*/
    465 void  Penta::UpdateInputsBalancedthickness2(double* solution, int analysis_type, int sub_analysis_type){
     464/*FUNCTION Penta::UpdateInputsFromSolutionBalancedthickness2 {{{1*/
     465void  Penta::UpdateInputsFromSolutionBalancedthickness2(double* solution, int analysis_type, int sub_analysis_type){
    466466        ISSMERROR(" not supported yet!");
    467467}
    468468/*}}}*/
    469 /*FUNCTION Penta::UpdateInputsBalancedvelocities {{{1*/
    470 void  Penta::UpdateInputsBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){
     469/*FUNCTION Penta::UpdateInputsFromSolutionBalancedvelocities {{{1*/
     470void  Penta::UpdateInputsFromSolutionBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){
    471471        ISSMERROR(" not supported yet!");
    472472}
  • issm/trunk/src/c/objects/Elements/Penta.h

    r3683 r3699  
    132132                /*updates: */
    133133                void  UpdateFromDakota(void* inputs);
    134                 void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
    135                 void  UpdateInputsDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);
    136                 void  UpdateInputsSlopeCompute( double* solution,int analysis_type,int sub_analysis_type);
    137                 void  UpdateInputsPrognostic( double* solution,int analysis_type,int sub_analysis_type);
    138                 void  UpdateInputsPrognostic2(double* solution,int analysis_type,int sub_analysis_type);
    139                 void  UpdateInputsBalancedthickness( double* solution,int analysis_type,int sub_analysis_type);
    140                 void  UpdateInputsBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type);
    141                 void  UpdateInputsBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type);
     134                void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
     135                void  UpdateInputsFromSolutionDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);
     136                void  UpdateInputsFromSolutionSlopeCompute( double* solution,int analysis_type,int sub_analysis_type);
     137                void  UpdateInputsFromSolutionPrognostic( double* solution,int analysis_type,int sub_analysis_type);
     138                void  UpdateInputsFromSolutionPrognostic2(double* solution,int analysis_type,int sub_analysis_type);
     139                void  UpdateInputsFromSolutionBalancedthickness( double* solution,int analysis_type,int sub_analysis_type);
     140                void  UpdateInputsFromSolutionBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type);
     141                void  UpdateInputsFromSolutionBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type);
    142142                void AddInput(double value, int enum_type){ISSMERROR("not supporte yet!");}
    143143
  • issm/trunk/src/c/objects/Elements/Sing.cpp

    r3687 r3699  
    238238}
    239239/*}}}*/
    240 /*FUNCTION Sing::UpdateInputs {{{1*/
    241 void  Sing::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     240/*FUNCTION Sing::UpdateInputsFromSolution {{{1*/
     241void  Sing::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){
    242242        ISSMERROR(" not supported yet!");
    243243}
  • issm/trunk/src/c/objects/Elements/Sing.h

    r3683 r3699  
    5757                void  CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
    5858                void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
    59                 void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
     59                void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
    6060                void  GetDofList(int* doflist,int* pnumberofdofs);
    6161                void  GetDofList1(int* doflist);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r3687 r3699  
    357357}
    358358/*}}}*/
    359 /*FUNCTION Tria::UpdateInputs {{{1*/
    360 void  Tria::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
    361 
    362         /*Just branch to the correct UpdateInputs generator, according to the type of analysis we are carrying out: */
     359/*FUNCTION Tria::UpdateInputsFromSolution {{{1*/
     360void  Tria::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){
     361
     362        /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */
    363363        if (analysis_type==ControlAnalysisEnum){
    364364               
    365                 UpdateInputsDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
     365                UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
    366366        }
    367367        else if (analysis_type==DiagnosticAnalysisEnum){
     
    369369                if (sub_analysis_type==HorizAnalysisEnum){
    370370
    371                         UpdateInputsDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
     371                        UpdateInputsFromSolutionDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
    372372                }
    373373                else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet");
     
    376376        else if (analysis_type==SlopecomputeAnalysisEnum){
    377377
    378                 UpdateInputsSlopeCompute( solution,analysis_type,sub_analysis_type);
     378                UpdateInputsFromSolutionSlopeCompute( solution,analysis_type,sub_analysis_type);
    379379        }
    380380        else if (analysis_type==PrognosticAnalysisEnum){
    381381
    382                 UpdateInputsPrognostic( solution,analysis_type,sub_analysis_type);
     382                UpdateInputsFromSolutionPrognostic( solution,analysis_type,sub_analysis_type);
    383383        }
    384384        else if (analysis_type==Prognostic2AnalysisEnum){
    385385
    386                 UpdateInputsPrognostic2(solution,analysis_type,sub_analysis_type);
     386                UpdateInputsFromSolutionPrognostic2(solution,analysis_type,sub_analysis_type);
    387387        }
    388388        else if (analysis_type==BalancedthicknessAnalysisEnum){
    389389
    390                 UpdateInputsBalancedthickness( solution,analysis_type,sub_analysis_type);
     390                UpdateInputsFromSolutionBalancedthickness( solution,analysis_type,sub_analysis_type);
    391391        }
    392392        else if (analysis_type==Balancedthickness2AnalysisEnum){
    393393
    394                 UpdateInputsBalancedthickness2( solution,analysis_type,sub_analysis_type);
     394                UpdateInputsFromSolutionBalancedthickness2( solution,analysis_type,sub_analysis_type);
    395395        }
    396396        else if (analysis_type==BalancedvelocitiesAnalysisEnum){
    397397
    398                 UpdateInputsBalancedvelocities( solution,analysis_type,sub_analysis_type);
     398                UpdateInputsFromSolutionBalancedvelocities( solution,analysis_type,sub_analysis_type);
    399399        }
    400400        else{
     
    404404}
    405405/*}}}*/
    406 /*FUNCTION Tria::UpdateInputsDiagnosticHoriz {{{1*/
    407 void  Tria::UpdateInputsDiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){
     406/*FUNCTION Tria::UpdateInputsFromSolutionDiagnosticHoriz {{{1*/
     407void  Tria::UpdateInputsFromSolutionDiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){
    408408       
    409409       
     
    441441
    442442/*}}}*/
    443 /*FUNCTION Tria::UpdateInputsSlopeCompute {{{1*/
    444 void  Tria::UpdateInputsSlopeCompute(double* solution, int analysis_type, int sub_analysis_type){
     443/*FUNCTION Tria::UpdateInputsFromSolutionSlopeCompute {{{1*/
     444void  Tria::UpdateInputsFromSolutionSlopeCompute(double* solution, int analysis_type, int sub_analysis_type){
    445445        ISSMERROR(" not supported yet!");
    446446}
    447447/*}}}*/
    448 /*FUNCTION Tria::UpdateInputsPrognostic {{{1*/
    449 void  Tria::UpdateInputsPrognostic(double* solution, int analysis_type, int sub_analysis_type){
     448/*FUNCTION Tria::UpdateInputsFromSolutionPrognostic {{{1*/
     449void  Tria::UpdateInputsFromSolutionPrognostic(double* solution, int analysis_type, int sub_analysis_type){
    450450        ISSMERROR(" not supported yet!");
    451451}
    452452/*}}}*/
    453 /*FUNCTION Tria::UpdateInputsPrognostic2 {{{1*/
    454 void  Tria::UpdateInputsPrognostic2(double* solution, int analysis_type, int sub_analysis_type){
     453/*FUNCTION Tria::UpdateInputsFromSolutionPrognostic2 {{{1*/
     454void  Tria::UpdateInputsFromSolutionPrognostic2(double* solution, int analysis_type, int sub_analysis_type){
    455455        ISSMERROR(" not supported yet!");
    456456}
    457457/*}}}*/
    458 /*FUNCTION Tria::UpdateInputsBalancedthickness {{{1*/
    459 void  Tria::UpdateInputsBalancedthickness(double* solution, int analysis_type, int sub_analysis_type){
     458/*FUNCTION Tria::UpdateInputsFromSolutionBalancedthickness {{{1*/
     459void  Tria::UpdateInputsFromSolutionBalancedthickness(double* solution, int analysis_type, int sub_analysis_type){
    460460        ISSMERROR(" not supported yet!");
    461461}
    462462/*}}}*/
    463 /*FUNCTION Tria::UpdateInputsBalancedthickness2 {{{1*/
    464 void  Tria::UpdateInputsBalancedthickness2(double* solution, int analysis_type, int sub_analysis_type){
     463/*FUNCTION Tria::UpdateInputsFromSolutionBalancedthickness2 {{{1*/
     464void  Tria::UpdateInputsFromSolutionBalancedthickness2(double* solution, int analysis_type, int sub_analysis_type){
    465465        ISSMERROR(" not supported yet!");
    466466}
    467467/*}}}*/
    468 /*FUNCTION Tria::UpdateInputsBalancedvelocities {{{1*/
    469 void  Tria::UpdateInputsBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){
     468/*FUNCTION Tria::UpdateInputsFromSolutionBalancedvelocities {{{1*/
     469void  Tria::UpdateInputsFromSolutionBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){
    470470        ISSMERROR(" not supported yet!");
    471471}
  • issm/trunk/src/c/objects/Elements/Tria.h

    r3683 r3699  
    117117                /*updates:*/
    118118                void  UpdateFromDakota(void* inputs);
    119                 void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
    120                 void  UpdateInputsDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);
    121                 void  UpdateInputsSlopeCompute( double* solution,int analysis_type,int sub_analysis_type);
    122                 void  UpdateInputsPrognostic( double* solution,int analysis_type,int sub_analysis_type);
    123                 void  UpdateInputsPrognostic2(double* solution,int analysis_type,int sub_analysis_type);
    124                 void  UpdateInputsBalancedthickness( double* solution,int analysis_type,int sub_analysis_type);
    125                 void  UpdateInputsBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type);
    126                 void  UpdateInputsBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type);
     119                void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
     120                void  UpdateInputsFromSolutionDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);
     121                void  UpdateInputsFromSolutionSlopeCompute( double* solution,int analysis_type,int sub_analysis_type);
     122                void  UpdateInputsFromSolutionPrognostic( double* solution,int analysis_type,int sub_analysis_type);
     123                void  UpdateInputsFromSolutionPrognostic2(double* solution,int analysis_type,int sub_analysis_type);
     124                void  UpdateInputsFromSolutionBalancedthickness( double* solution,int analysis_type,int sub_analysis_type);
     125                void  UpdateInputsFromSolutionBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type);
     126                void  UpdateInputsFromSolutionBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type);
    127127                void  AddInput(double value, int enum_type){ISSMERROR("not supporte yet!");}
    128128
  • issm/trunk/src/c/objects/FemModel.h

    r3681 r3699  
    2828                DataSet*            loads;
    2929                DataSet*            materials;
    30                 Parameters*            parameters;
     30                Parameters*         parameters;
    3131
    3232                DofVec*             partition;
  • issm/trunk/src/c/parallel/diagnostic.cpp

    r3673 r3699  
    33 */
    44
    5 #include "../issm.h"
     5#include "../objects/objects.h"
     6#include "../shared/shared.h"
     7#include "../DataSet/DataSet.h"
    68#include "./parallel.h"
    79
     
    3335       
    3436        double waitonlock=0;
    35         int    numberofnodes;
    3637       
    37         double* u_g_initial=NULL;
    38         double* u_g_obs=NULL;
    39         double* weights=NULL;
    40         Param*  param=NULL;
    41         int      count;
    42         Parameters* parameters=NULL;
    43 
    4438        /*time*/
    4539        double   start, finish;
     
    9084
    9185        /*get parameters: */
    92         model->FindParam(&qmu_analysis,"qmu_analysis");
    93         model->FindParam(&control_analysis,"control_analysis");
    94         model->FindParam(&waitonlock,"waitonlock");
     86        model->FindParam(&qmu_analysis,QmuAnalysisEnum);
     87        model->FindParam(&control_analysis,ControlAnalysisEnum);
     88        model->FindParam(&waitonlock,WaitOnLockEnum);
    9589
    96         _printf_("initialize inputs:\n");
    97         model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);
    98         model->FindParam(&numberofnodes,"numberofnodes");
    99 
    100         inputs=new ParameterInputs;
    101         inputs->Add("velocity",u_g_initial,3,numberofnodes);
    102 
    103         if(control_analysis){
    104                 model->FindParam(&u_g_obs,NULL,NULL,"u_g_obs",DiagnosticAnalysisEnum,HorizAnalysisEnum);
    105                 model->FindParam(&weights,NULL,NULL,"weights",DiagnosticAnalysisEnum,HorizAnalysisEnum);
    106                 inputs->Add("velocity_obs",u_g_obs,2,numberofnodes);
    107                 inputs->Add("weights",weights,1,numberofnodes);
    108         }
    109        
    11090        _printf_("initialize results:\n");
    11191        results=new DataSet(ResultsEnum);
     
    11898                        _printf_("call computational core:\n");
    11999                        MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    120                         diagnostic_core(results,model,inputs);
     100                        diagnostic_core(results,model);
    121101                        MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    122102
     
    132112                        _printf_("call computational core:\n");
    133113                        MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    134                         control_core(results,model,inputs);
     114                        control_core(results,model);
    135115                        MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    136116
     
    156136                #ifdef _HAVE_DAKOTA_
    157137                MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
    158                 Qmux(model,inputs,DiagnosticAnalysisEnum,NoneAnalysisEnum);
     138                Qmux(model,DiagnosticAnalysisEnum,NoneAnalysisEnum);
    159139                MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
    160140                #else
     
    174154        xfree((void**)&control_type);
    175155        delete model;
    176         delete inputs;
    177156        delete results;
    178157        delete processed_results;
  • issm/trunk/src/c/parallel/diagnostic_core.cpp

    r3598 r3699  
    1010#include "../issm.h"
    1111
    12 void diagnostic_core(DataSet* results,Model* model, ParameterInputs* inputs){
     12void diagnostic_core(DataSet* results,Model* model){
    1313
    1414        extern int my_rank;
     
    3737        /*flags: */
    3838        int verbose=0;
    39         int qmu_analysis=0;
     39        bool qmu_analysis=0;
    4040        int dim=-1;
    41         int ishutter=0;
    42         int ismacayealpattyn=0;
    43         int isstokes=0;
     41        bool ishutter=0;
     42        bool ismacayealpattyn=0;
     43        bool isstokes=0;
    4444        int numberofdofspernode_sl;
    4545        int numberofdofspernode_dh;
     
    5959
    6060        //first recover parameters common to all solutions
    61         model->FindParam(&verbose,"verbose");
    62         model->FindParam(&dim,"dim");
    63         model->FindParam(&ishutter,"ishutter");
    64         model->FindParam(&ismacayealpattyn,"ismacayealpattyn");
    65         model->FindParam(&numberofnodes,"numberofnodes");
    66         model->FindParam(&isstokes,"isstokes");
    67         model->FindParam(&stokesreconditioning,"stokesreconditioning");
    68         model->FindParam(&numrifts,"numrifts");
    69         model->FindParam(&qmu_analysis,"qmu_analysis");
     61        model->FindParam(&verbose,VerboseEnum);
     62        model->FindParam(&dim,DimEnum);
     63        model->FindParam(&ishutter,IsHutterEnum);
     64        model->FindParam(&ismacayealpattyn,IsMacayealPattynEnum);
     65        model->FindParam(&numberofnodes,NumberOfNodesEnum);
     66        model->FindParam(&isstokes,IsStokesEnum);
     67        model->FindParam(&stokesreconditioning,StokesReconditioningEnum);
     68        model->FindParam(&numrifts,NumriftsEnum);
     69        model->FindParam(&qmu_analysis,QmuAnalysisEnum);
    7070
    7171        /*recover fem models: */
     
    7777
    7878        //specific parameters for specific models
    79         fem_dh->FindParam(&numberofdofspernode_dh,"numberofdofspernode");
    80         fem_sl->FindParam(&numberofdofspernode_sl,"numberofdofspernode");
    81         fem_ds->FindParam(&numberofdofspernode_ds,"numberofdofspernode");
     79        fem_dh->FindParam(&numberofdofspernode_dh,NumberOfDofsPerNodeEnum);
     80        fem_sl->FindParam(&numberofdofspernode_sl,NumberOfDofsPerNodeEnum);
     81        fem_ds->FindParam(&numberofdofspernode_ds,NumberOfDofsPerNodeEnum);
    8282
    8383        //for qmu analysis, be sure the velocity input we are starting from  is the one in the parameters: */
    8484        if(qmu_analysis){
    85                 model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);
    86                 inputs->Add("velocity",u_g_initial,3,numberofnodes);
     85                model->FindParam(&vx,VxEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vx,VxEnum,VertexEnum);
     86                model->FindParam(&vy,VyEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vy,VyEnum,VertexEnum);
     87                model->FindParam(&vz,VzEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vz,VzEnum,VertexEnum);
    8788        }
    8889
     
    9091                       
    9192                if(verbose)_printf_("%s\n","computing surface slope (x and y derivatives)...");
    92                 diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum,SurfaceXAnalysisEnum);
    93                 diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum,SurfaceYAnalysisEnum);
     93                diagnostic_core_linear(&slopex,fem_sl,SlopecomputeAnalysisEnum,SurfaceXAnalysisEnum);
     94                diagnostic_core_linear(&slopey,fem_sl,SlopecomputeAnalysisEnum,SurfaceYAnalysisEnum);
    9495
    9596                if (dim==3){
     
    106107
    107108                if(verbose)_printf_("%s\n"," computing hutter velocities...");
    108                 diagnostic_core_linear(&ug,fem_dhu,inputs,DiagnosticAnalysisEnum,HutterAnalysisEnum);
     109                diagnostic_core_linear(&ug,fem_dhu,DiagnosticAnalysisEnum,HutterAnalysisEnum);
    109110
    110111                if(verbose)_printf_("%s\n"," computing pressure according to MacAyeal...");
    111                 ComputePressurex(&pg,fem_dhu->elements,fem_dhu->nodes, fem_dhu->vertices,fem_dhu->loads,fem_dhu->materials,fem_dhu->parameters,inputs,DiagnosticAnalysisEnum,HutterAnalysisEnum);
     112                ComputePressurex(&pg,fem_dhu->elements,fem_dhu->nodes, fem_dhu->vertices,fem_dhu->loads,fem_dhu->materials,fem_dhu->parameters,DiagnosticAnalysisEnum,HutterAnalysisEnum);
    112113
    113114                if(verbose)_printf_("%s\n"," update boundary conditions for macyeal pattyn using hutter results...");
     
    123124               
    124125                if(verbose)_printf_("%s\n"," computing horizontal velocities...");
    125                 diagnostic_core_nonlinear(&ug,NULL,NULL,fem_dh->loads,fem_dh,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
     126                diagnostic_core_nonlinear(&ug,NULL,NULL,fem_dh->loads,fem_dh,DiagnosticAnalysisEnum,HorizAnalysisEnum);
    126127
    127128                if(dim==2){
    128129                        if(verbose)_printf_("%s\n"," computing pressure according to MacAyeal...");
    129                         ComputePressurex(&pg,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
     130                        ComputePressurex(&pg,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,DiagnosticAnalysisEnum,HorizAnalysisEnum);
    130131                }
    131132
     
    140141                if(verbose)_printf_("%s\n"," computing vertical velocities...");
    141142                inputs->Add("velocity",ug_horiz,numberofdofspernode_dh,numberofnodes);
    142                 diagnostic_core_linear(&ug_vert,fem_dv,inputs,DiagnosticAnalysisEnum,VertAnalysisEnum);
     143                diagnostic_core_linear(&ug_vert,fem_dv,DiagnosticAnalysisEnum,VertAnalysisEnum);
    143144
    144145                if(verbose)_printf_("%s\n"," combining horizontal and vertical velocities...");
     
    150151
    151152                if(verbose)_printf_("%s\n"," computing pressure according to Pattyn...");
    152                 ComputePressurex(&pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads,  fem_dh->materials,fem_dh->parameters,inputs,DiagnosticAnalysisEnum,HorizAnalysisEnum);
     153                ComputePressurex(&pg,fem_dh->elements, fem_dh->nodes, fem_dh->vertices,fem_dh->loads,  fem_dh->materials,fem_dh->parameters,DiagnosticAnalysisEnum,HorizAnalysisEnum);
    153154               
    154155                if (isstokes){
     
    158159
    159160                        if(verbose)_printf_("%s\n","computing bed slope (x and y derivatives)...");
    160                         diagnostic_core_linear(&slopex,fem_sl,inputs,SlopecomputeAnalysisEnum,BedXAnalysisEnum);
    161                         diagnostic_core_linear(&slopey,fem_sl,inputs,SlopecomputeAnalysisEnum,BedYAnalysisEnum);
     161                        diagnostic_core_linear(&slopex,fem_sl,SlopecomputeAnalysisEnum,BedXAnalysisEnum);
     162                        diagnostic_core_linear(&slopey,fem_sl,SlopecomputeAnalysisEnum,BedYAnalysisEnum);
    162163                        FieldExtrudex( slopex, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopex",0);
    163164                        FieldExtrudex( slopey, fem_sl->elements,fem_sl->nodes,fem_sl->vertices,fem_sl->loads,fem_sl->materials,fem_sl->parameters,"slopey",0);
     
    182183                        if(verbose)_printf_("%s\n"," computing stokes velocities and pressure ...");
    183184                        VecFree(&ug);
    184                         diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds,inputs,DiagnosticAnalysisEnum,StokesAnalysisEnum);
     185                        diagnostic_core_nonlinear(&ug,NULL,NULL,NULL,fem_ds,DiagnosticAnalysisEnum,StokesAnalysisEnum);
    185186               
    186187                        //decondition" pressure
Note: See TracChangeset for help on using the changeset viewer.