Changeset 3821


Ignore:
Timestamp:
05/18/10 15:18:42 (15 years ago)
Author:
Eric.Larour
Message:

New GetSolutionFromInputs module

Location:
issm/trunk/src/c
Files:
3 added
14 edited

Legend:

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

    r3811 r3821  
    14191419}
    14201420/*}}}*/
     1421/*FUNCTION DataSet::GetSolutionFromInputs{{{1*/
     1422void  DataSet::GetSolutionFromInputs(Vec solution, int analysis_type, int sub_analysis_type){
     1423
     1424        vector<Object*>::iterator object;
     1425        Element* element=NULL;
     1426
     1427        for ( object=objects.begin() ; object < objects.end(); object++ ){
     1428
     1429                if(EnumIsElement((*object)->Enum())){
     1430
     1431                        element=(Element*)(*object);
     1432                        element->GetSolutionFromInputs(solution,analysis_type,sub_analysis_type);
     1433                }
     1434                else ISSMERROR("%s%i%s"," object with id: ",(*object)->Id()," is not an element, in a function that deals only with elements!");
     1435        }
     1436}
     1437/*}}}*/
    14211438/*FUNCTION DataSet::UpdateInputsFromConstant{{{1*/
    14221439void  DataSet::UpdateInputsFromConstant(double constant, int name){
  • issm/trunk/src/c/DataSet/DataSet.h

    r3808 r3821  
    7979                void  UpdateInputsFromVector(bool* vector,int name, int type);
    8080                void  UpdateInputsFromSolution(double* solution,int analysis_type,int sub_analysis_type);
     81                void  GetSolutionFromInputs(Vec solution, int analysis_type, int sub_analysis_type);
    8182                void  PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
    8283                void  PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type);
  • issm/trunk/src/c/Makefile.am

    r3807 r3821  
    299299                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h\
    300300                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp\
     301                                        ./GetSolutionFromInputsx/GetSolutionFromInputsx.h\
     302                                        ./GetSolutionFromInputsx/GetSolutionFromInputsx.cpp\
    301303                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h\
    302304                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp\
     
    739741                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h\
    740742                                        ./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp\
     743                                        ./GetSolutionFromInputsx/GetSolutionFromInputsx.h\
     744                                        ./GetSolutionFromInputsx/GetSolutionFromInputsx.cpp\
    741745                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h\
    742746                                        ./UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp\
  • issm/trunk/src/c/modules.h

    r3807 r3821  
    6262#include "./ExtrudeInputx/ExtrudeInputx.h"
    6363#include "./InputToResultx/InputToResultx.h"
     64#include "./GetSolutionFromInputsx/GetSolutionFromInputsx.h"
    6465#endif
  • issm/trunk/src/c/objects/Elements/Beam.cpp

    r3811 r3821  
    302302}
    303303/*}}}*/
     304/*FUNCTION Beam::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);{{{1*/
     305void  Beam::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type){
     306        ISSMERROR(" not supported yet!");
     307}
     308/*}}}*/
    304309
    305310/*Object functions*/
  • issm/trunk/src/c/objects/Elements/Beam.h

    r3811 r3821  
    6666                void  CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
    6767                void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
     68                void  GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);
    6869                void  GetDofList(int* doflist,int* pnumberofdofs);
    6970                void  GetDofList1(int* doflist);
  • issm/trunk/src/c/objects/Elements/Element.h

    r3811 r3821  
    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   GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type)=0;
    3031                virtual void   GetNodes(void** nodes)=0;
    3132                virtual void*  GetMatPar()=0;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r3819 r3821  
    531531/*FUNCTION Penta::UpdateInputsFromSolutionBalancedvelocities {{{1*/
    532532void  Penta::UpdateInputsFromSolutionBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){
     533        ISSMERROR(" not supported yet!");
     534}
     535/*}}}*/
     536/*FUNCTION Penta::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);{{{1*/
     537void  Penta::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type){
    533538        ISSMERROR(" not supported yet!");
    534539}
  • issm/trunk/src/c/objects/Elements/Penta.h

    r3819 r3821  
    6262                void  CreateKMatrixDiagnosticVert( Mat Kgg,  int analysis_type,int sub_analysis_type);
    6363                void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
     64                void  GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);
    6465                void  GetDofList(int* doflist,int* pnumberofdofs);
    6566                void  GetDofList1(int* doflist);
  • issm/trunk/src/c/objects/Elements/Sing.cpp

    r3811 r3821  
    240240/*FUNCTION Sing::UpdateInputsFromSolution {{{1*/
    241241void  Sing::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){
     242        ISSMERROR(" not supported yet!");
     243}
     244/*}}}*/
     245/*FUNCTION Sing::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);{{{1*/
     246void  Sing::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type){
    242247        ISSMERROR(" not supported yet!");
    243248}
  • issm/trunk/src/c/objects/Elements/Sing.h

    r3811 r3821  
    6565                void  CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
    6666                void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
    67                                 void  GetDofList(int* doflist,int* pnumberofdofs);
     67                void  GetDofList(int* doflist,int* pnumberofdofs);
     68                void  GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);
    6869                void  GetDofList1(int* doflist);
    6970                void  CreateKMatrixDiagnosticHutter(Mat Kgg,int analysis_type,int sub_analysis_type);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r3811 r3821  
    485485/*FUNCTION Tria::UpdateInputsFromSolutionBalancedvelocities {{{1*/
    486486void  Tria::UpdateInputsFromSolutionBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){
     487        ISSMERROR(" not supported yet!");
     488}
     489/*}}}*/
     490/*FUNCTION Tria::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);{{{1*/
     491void  Tria::GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type){
    487492        ISSMERROR(" not supported yet!");
    488493}
  • issm/trunk/src/c/objects/Elements/Tria.h

    r3811 r3821  
    5151                int   MyRank();
    5252                void  SetClone(int* minranks);
    53                 void    UpdateInputsFromVector(double* vector, int name, int type);
    54                 void    UpdateInputsFromVector(int* vector, int name, int type);
    55                 void    UpdateInputsFromVector(bool* vector, int name, int type);
    56                 void    UpdateInputsFromConstant(double constant, int name){ISSMERROR("Not implemented yet!");}
    57                 void    UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");}
    58                 void    UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");}
    59 
    60                 void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
    61 
     53               
    6254                /*}}}*/
    6355                /*FUNCTION element numerical routines {{{1*/
    6456                void  CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
    6557                void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
    66                                 void  GetDofList(int* doflist,int* pnumberofdofs);
     58                void  GetSolutionFromInputs(Vec solution,  int analysis_type,int sub_analysis_type);
     59                void  GetDofList(int* doflist,int* pnumberofdofs);
    6760                void  GetDofList1(int* doflist);
    6861                void  CreateKMatrixDiagnosticHoriz(Mat Kgg,int analysis_type,int sub_analysis_type);
     
    9386                double SurfaceArea(int analysis_type,int sub_analysis_type);
    9487                double CostFunction(int analysis_type,int sub_analysis_type);
    95 
    9688                void  CreatePVectorDiagnosticHoriz(Vec pg,int analysis_type,int sub_analysis_type);
    9789                void  CreatePVectorDiagnosticBaseVert(Vec pg,int analysis_type,int sub_analysis_type);
     
    123115                double GetArea(void);
    124116                double GetAreaCoordinate(double x, double y, int which_one);
     117                /*}}}*/
    125118
    126119                /*updates:*/
    127120                void  UpdateFromDakota(void* inputs);
     121                void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
    128122                void  UpdateInputsFromSolutionDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);
    129123                void  UpdateInputsFromSolutionSlopeCompute( double* solution,int analysis_type,int sub_analysis_type);
     
    133127                void  UpdateInputsFromSolutionBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type);
    134128                void  UpdateInputsFromSolutionBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type);
     129                void  UpdateInputsFromVector(double* vector, int name, int type);
     130                void  UpdateInputsFromVector(int* vector, int name, int type);
     131                void  UpdateInputsFromVector(bool* vector, int name, int type);
     132                void  UpdateInputsFromConstant(double constant, int name){ISSMERROR("Not implemented yet!");}
     133                void  UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");}
     134                void  UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");}
     135                void  pdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
    135136
    136                 /*}}}*/
    137137
    138138};
  • issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp

    r3820 r3821  
    5858        count=1;
    5959        converged=0;
     60
     61        /*Start non-linear iteration using input velocity: */
     62        GetSolutionFromInputsx(&ug, elements, nodes, vertices, loads, materials, parameters, analysis_type, sub_analysis_type);
     63        Reducevectorgtofx(&uf, ug, fem->nodesets);
     64
    6065        for(;;){
    6166
Note: See TracChangeset for help on using the changeset viewer.