Changeset 3599


Ignore:
Timestamp:
04/21/10 17:04:16 (15 years ago)
Author:
Eric.Larour
Message:

Added new inputs dataset in each element! With new UpdateInputs module
to populate this inputs datasets with TriaVertexInput objects that store
vx,vy, vz, etc ...

Location:
issm/trunk
Files:
12 added
30 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/configs/linux64/linux64.sh.petsc2

    r3592 r3599  
    11#!/bin/sh
    22
    3 ./configure --prefix=$ISSM_DIR --with-matlab-dir=$MATLAB_DIR --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install --with-metis-dir=$ISSM_DIR/externalpackages/metis/install --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install --with-mpi-include=$ISSM_DIR/externalpackages/mpich2/install/include  --with-mpi-lib="-L$ISSM_DIR/externalpackages/mpich2/install/lib/ -lmpich" --with-petsc-arch=$ISSM_ARCH --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/fblaslapack/$ISSM_ARCH --with-plapack-lib="-L$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH -lPLAPACK" --with-plapack-include="-I$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH/INCLUDE" --with-blacs-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/blacs-dev/$ISSM_ARCH --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/SCALAPACK/$ISSM_ARCH --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/MUMPS_4.6.3/$ISSM_ARCH --with-fortran-lib="-L/usr/lib/gcc/x86_64-redhat-linux/4.1.1/ -lgfortran" --with-graphics-lib=/usr/lib64/libX11.so --with-cxxoptflags="-march=opteron -O2" --with-numthreads=32 --with-petsc-version=2 
     3./configure --prefix=$ISSM_DIR --with-matlab-dir=$MATLAB_DIR --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install --with-metis-dir=$ISSM_DIR/externalpackages/metis/install --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install --with-mpi-include=$ISSM_DIR/externalpackages/mpich2/install/include  --with-mpi-lib="-L$ISSM_DIR/externalpackages/mpich2/install/lib/ -lmpich" --with-petsc-arch=$ISSM_ARCH --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/fblaslapack/$ISSM_ARCH --with-plapack-lib="-L$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH -lPLAPACK" --with-plapack-include="-I$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH/INCLUDE" --with-blacs-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/blacs-dev/$ISSM_ARCH --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/SCALAPACK/$ISSM_ARCH --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/MUMPS_4.6.3/$ISSM_ARCH --with-fortran-lib="-L/usr/lib/gcc/x86_64-redhat-linux/4.1.1/ -lgfortran" --with-graphics-lib=/usr/lib64/libX11.so --with-cxxoptflags="-march=opteron -O2" --with-numthreads=32 --with-petsc-version=2
  • issm/trunk/externalpackages/matlab/install.sh

    r3592 r3599  
    22
    33#Matlab version: used by Petsc to detect some weird behaviour starting at version 7.6 (all blas and lapack prototypes changed! damn them!)
    4 MATLAB_VERSION=7.8
     4MATLAB_VERSION=7.6
    55
    66#Erase symlink
  • issm/trunk/src/c/DataSet/DataSet.cpp

    r3595 r3599  
    152152/*FUNCTION DataSet::Demarshall{{{1*/
    153153DataSet* DataSetDemarshall(char* marshalled_dataset){
     154
     155        return DataSetDemarshallRaw(&marshalled_dataset);
     156
     157}
     158/*}}}*/
     159/*FUNCTION DataSet::DemarshallRaw{{{1*/
     160DataSet* DataSetDemarshallRaw(char** pmarshalled_dataset){
    154161
    155162        int i;
     
    162169        int*     sorted_ids=NULL;
    163170        int*     id_offsets=NULL;
     171        char*    marshalled_dataset=NULL;
     172
     173        /*recover marshalled_dataset pointer: */
     174        marshalled_dataset=*pmarshalled_dataset;
    164175
    165176        /*initialize dataset: */
     
    291302
    292303        }
     304
     305        /*Assign output pointers:*/
     306        *pmarshalled_dataset=marshalled_dataset;
     307       
    293308        return dataset;
    294 
     309}
     310/*}}}*/
     311/*FUNCTION DataSet::Spawn{{{1*/
     312DataSet* DataSet::Spawn(int* indices, int num){
     313        ISSMERROR(" not supported yet!");
    295314}
    296315/*}}}*/
    297316
    298317/*Specific methods*/
     318/*FUNCTION DataSet::AddEinput{{{1*/
     319int  DataSet::AddEinput(Einput* in_einput){
     320
     321        /*First, go through dataset of inputs and check whether any input
     322         * with the same name is already in. If so, erase the corresponding
     323         * object before adding this new one: */
     324        vector<Object*>::iterator object;
     325        Einput* einput=NULL;
     326
     327        for ( object=objects.begin() ; object < objects.end(); object++ ){
     328
     329                einput=(Einput*)(*object); //assume this is an inputs dataset
     330
     331                if (einput->EnumType()==in_einput->EnumType()){
     332                        this->DeleteObject(einput);
     333                        break;
     334                }
     335        }
     336        this->AddObject(in_einput);
     337}
     338/*}}}*/
    299339/*FUNCTION DataSet::AddObject{{{1*/
    300340int  DataSet::AddObject(Object* object){
     
    15771617}
    15781618/*}}}*/
     1619/*FUNCTION DataSet::UpdateInputs{{{1*/
     1620void  DataSet::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     1621
     1622        vector<Object*>::iterator object;
     1623        Element* element=NULL;
     1624
     1625        for ( object=objects.begin() ; object < objects.end(); object++ ){
     1626
     1627                if(EnumIsElement((*object)->Enum())){
     1628
     1629                        element=(Element*)(*object);
     1630                        element->UpdateInputs(solution,analysis_type,sub_analysis_type);
     1631                }
     1632                else ISSMERROR("%s%i%s"," object with id: ",(*object)->GetId()," is not an element, in a function that deals only with elements!");
     1633        }
     1634}
     1635/*}}}*/
    15791636/*FUNCTION DataSet::UpdateFromInputs{{{1*/
    15801637void  DataSet::UpdateFromInputs(void* inputs){
  • issm/trunk/src/c/DataSet/DataSet.h

    r3556 r3599  
    1212#include <vector>
    1313#include "../toolkits/toolkits.h"
     14#include "../objects/Einput.h"
    1415#include "../objects/Object.h"
    1516
     
    4647                int   MarshallSize();
    4748                int   AddObject(Object* object);
     49                int   AddEinput(Einput* in_einput);
    4850                int   DeleteObject(int id);
    4951                int   Size();
     
    7779                void  CreatePVector(Vec pg,void* inputs, int analysis_type,int sub_analysis_type);
    7880                void  UpdateFromInputs(void* inputs);
     81                void  UpdateInputs(double* solution,int analysis_type,int sub_analysis_type);
    7982                void  PenaltyCreateKMatrix(Mat Kgg,void* inputs,double kmax,int analysis_type,int sub_analysis_type);
    8083                void  PenaltyCreatePVector(Vec pg,void* inputs,double kmax,int analysis_type,int sub_analysis_type);
     
    98101                void  UpdateVertexPositions(double* thickness,double* bed);
    99102                void  OutputRifts(Vec riftproperties);
     103                DataSet* Spawn(int* indices, int num);
    100104                /*}}}*/
    101105
     
    104108/*This routine cannot be object oriented, but need for demarshalling: */
    105109DataSet* DataSetDemarshall(char* marshalled_dataset);
     110DataSet* DataSetDemarshallRaw(char** pmarshalled_dataset);
    106111
    107112#endif
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r3588 r3599  
    9898        /*Inputs: */
    9999        InputEnum,
     100        TriaVertexInputEnum,
    100101        /*Params: */
    101102        ParamEnum,
     
    120121        MelangeEnum,
    121122        /*}}}*/
     123        /*Inputs {{{1*/
     124        VxEnum,
     125        VyEnum,
     126        /*}}}*/
    122127
    123128};
  • issm/trunk/src/c/Makefile.am

    r3588 r3599  
    3030                                        ./objects/BamgOpts.cpp\
    3131                                        ./objects/Element.h\
    32                                         ./objects/Element.cpp\
    3332                                        ./objects/ElementProperties.h\
    3433                                        ./objects/ElementProperties.cpp\
     
    6665                                        ./objects/Tria.h\
    6766                                        ./objects/Tria.cpp\
     67                                        ./objects/TriaVertexInput.h\
     68                                        ./objects/TriaVertexInput.cpp\
    6869                                        ./objects/Sing.h\
    6970                                        ./objects/Sing.cpp\
     
    8081                                        ./objects/Input.h\
    8182                                        ./objects/Input.cpp\
     83                                        ./objects/Einput.h\
    8284                                        ./objects/ParameterInputs.h\
    8385                                        ./objects/ParameterInputs.cpp\
     
    272274                                        ./UpdateFromInputsx/UpdateFromInputsx.h\
    273275                                        ./UpdateFromInputsx/UpdateFromInputsx.cpp\
     276                                        ./UpdateInputsx/UpdateInputsx.h\
     277                                        ./UpdateInputsx/UpdateInputsx.cpp\
    274278                                        ./UpdateGeometryx/UpdateGeometryx.h\
    275279                                        ./UpdateGeometryx/UpdateGeometryx.cpp\
     
    437441                                        ./objects/BamgOpts.cpp\
    438442                                        ./objects/Element.h\
    439                                         ./objects/Element.cpp\
    440443                                        ./objects/ElementProperties.h\
    441444                                        ./objects/ElementProperties.cpp\
     
    473476                                        ./objects/Tria.h\
    474477                                        ./objects/Tria.cpp\
     478                                        ./objects/TriaVertexInput.h\
     479                                        ./objects/TriaVertexInput.cpp\
    475480                                        ./objects/Sing.h\
    476481                                        ./objects/Sing.cpp\
     
    487492                                        ./objects/Input.h\
    488493                                        ./objects/Input.cpp\
     494                                        ./objects/Einput.h\
    489495                                        ./objects/ParameterInputs.h\
    490496                                        ./objects/ParameterInputs.cpp\
     
    676682                                        ./UpdateFromInputsx/UpdateFromInputsx.h\
    677683                                        ./UpdateFromInputsx/UpdateFromInputsx.cpp\
     684                                        ./UpdateInputsx/UpdateInputsx.h\
     685                                        ./UpdateInputsx/UpdateInputsx.cpp\
    678686                                        ./UpdateGeometryx/UpdateGeometryx.h\
    679687                                        ./UpdateGeometryx/UpdateGeometryx.cpp\
  • issm/trunk/src/c/issm.h

    r3529 r3599  
    4040#include "./SystemMatricesx/SystemMatricesx.h"
    4141#include "./UpdateFromInputsx/UpdateFromInputsx.h"
     42#include "./UpdateInputsx/UpdateInputsx.h"
    4243#include "./UpdateGeometryx/UpdateGeometryx.h"
    4344#include "./UpdateVertexPositionsx/UpdateVertexPositionsx.h"
  • issm/trunk/src/c/objects/Beam.cpp

    r3591 r3599  
    236236                +properties.MarshallSize()
    237237                +sizeof(int); //sizeof(int) for enum type
     238}
     239/*}}}*/
     240/*FUNCTION Beam::UpdateInputs {{{1*/
     241void  Beam::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     242        ISSMERROR(" not supported yet!");
    238243}
    239244/*}}}*/
  • issm/trunk/src/c/objects/Beam.h

    r3591 r3599  
    6464                void  CreatePVector(Vec pg, void* inputs, int analysis_type,int sub_analysis_type);
    6565                void  UpdateFromInputs(void* inputs);
     66                void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
    6667                void  GetDofList(int* doflist,int* pnumberofdofs);
    6768                void  GetDofList1(int* doflist);
  • issm/trunk/src/c/objects/Element.h

    r3565 r3599  
    2020                virtual void   CreateKMatrix(Mat Kgg,void* inputs,int analysis_type,int sub_analysis_type)=0;
    2121                virtual void   CreatePVector(Vec pg, void* inputs, int analysis_type,int sub_analysis_type)=0;
     22                virtual int    Enum()=0;
    2223                virtual void   UpdateFromInputs(void* inputs)=0;
     24                virtual void   UpdateInputs(double* solution, int analysis_type, int sub_analysis_type)=0;
    2325                virtual void   GetNodes(void** nodes)=0;
    2426                virtual void*  GetMatPar()=0;
     
    4042
    4143                /*Implementation: */
    42                 int            Enum();
    4344
    4445};
  • issm/trunk/src/c/objects/Penta.cpp

    r3597 r3599  
    241241        Hook* tria_hnumpar=NULL;
    242242        ElementProperties* tria_properties=NULL;
     243        DataSet* tria_inputs=NULL;
    243244
    244245        indices[0]=g0;
     
    251252        tria_hnumpar=this->hnumpar.Spawn(&zero,1);
    252253        tria_properties=(ElementProperties*)this->properties.Spawn(indices,3);
    253 
    254         tria=new Tria(this->id,tria_hnodes,tria_hmatice,tria_hmatpar,tria_hnumpar,tria_properties);
     254        tria_inputs=(DataSet*)this->inputs->Spawn(indices,3);
     255
     256        tria=new Tria(this->id,tria_hnodes,tria_hmatice,tria_hmatpar,tria_hnumpar,tria_properties,tria_inputs);
    255257
    256258        delete tria_hnodes;
     
    259261        delete tria_hnumpar;
    260262        delete tria_properties;
     263        delete tria_inputs;
    261264
    262265        return tria;
     
    332335        ISSMERROR("not supported yet!");
    333336
     337}
     338/*}}}*/
     339/*FUNCTION Penta::UpdateInputs {{{1*/
     340void  Penta::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     341        ISSMERROR(" not supported yet!");
    334342}
    335343/*}}}*/
  • issm/trunk/src/c/objects/Penta.h

    r3582 r3599  
    3737
    3838                ElementProperties properties;
     39                DataSet* inputs;
    3940
    4041        public:
     
    6263                void  UpdateFromDakota(void* inputs);
    6364                void  UpdateFromInputs(void* inputs);
     65                void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
    6466                void  SetClone(int* minranks);
    6567
  • issm/trunk/src/c/objects/Sing.cpp

    r3591 r3599  
    286286        }
    287287
     288}
     289/*}}}*/
     290/*FUNCTION Sing::UpdateInputs {{{1*/
     291void  Sing::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     292        ISSMERROR(" not supported yet!");
    288293}
    289294/*}}}*/
  • issm/trunk/src/c/objects/Sing.h

    r3591 r3599  
    5959                void  CreatePVector(Vec pg, void* inputs, int analysis_type,int sub_analysis_type);
    6060                void  UpdateFromInputs(void* inputs);
     61                void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
    6162                void  GetDofList(int* doflist,int* pnumberofdofs);
    6263                void  GetDofList1(int* doflist);
  • issm/trunk/src/c/objects/Tria.cpp

    r3596 r3599  
    1010
    1111#include "stdio.h"
     12#include "./TriaVertexInput.h"
    1213#include "./Object.h"
    1314#include "./Hook.h"
     
    2122#include "../include/macros.h"
    2223
    23 /*For debugging purposes: */
    24 #define ELID 141 //element for which to print debug statements
    25 #define RANK 2 //rank of cpu for which to print debug statements.
    26 //#define _DEBUGELEMENTS_
    27 //#define _DEBUGGAUSS_
    28 
    2924/*Object constructors and destructor*/
    3025/*FUNCTION Tria::Tria(){{{1*/
    3126Tria::Tria(){
     27        this->inputs=NULL;
    3228        return;
    3329}
     
    4440        /*all the initialization has been done by the initializer, just fill in the id: */
    4541        this->id=tria_id;
     42        this->inputs=new DataSet();
    4643
    4744        return;
    4845}
    4946/*}}}*/
    50 /*FUNCTION Tria::Tria(int id, Hook* hnodes, Hook* hmatice, Hook* hmatpar, Hook* hnumpar, ElementProperties* properties) {{{1*/
    51 Tria::Tria(int tria_id,Hook* tria_hnodes, Hook* tria_hmatice, Hook* tria_hmatpar, Hook* tria_hnumpar, ElementProperties* tria_properties):
     47/*FUNCTION Tria::Tria(int id, Hook* hnodes, Hook* hmatice, Hook* hmatpar, Hook* hnumpar, ElementProperties* properties,DataSet* tria_inputs) {{{1*/
     48Tria::Tria(int tria_id,Hook* tria_hnodes, Hook* tria_hmatice, Hook* tria_hmatpar, Hook* tria_hnumpar, ElementProperties* tria_properties,DataSet* tria_inputs):
    5249        hnodes(tria_hnodes),
    5350        hmatice(tria_hmatice),
     
    5956        /*all the initialization has been done by the initializer, just fill in the id: */
    6057        this->id=tria_id;
     58        if(tria_inputs){
     59                this->inputs=tria_inputs->Copy();
     60        }
     61        else{
     62                this->inputs=new DataSet();
     63        }
    6164
    6265        return;
     
    7477        /*id: */
    7578        this->id=i+1;
    76 
     79        this->inputs=new DataSet();
     80       
    7781        /*hooks: */
    7882        //go recover node ids, needed to initialize the node hook.
     
    103107/*FUNCTION Tria::~Tria(){{{1*/
    104108Tria::~Tria(){
     109        delete inputs;
    105110        return;
    106111}
     
    136141Object* Tria::copy() {
    137142
    138         return new Tria(this->id,&this->hnodes,&this->hmatice,&this->hmatpar,&this->hnumpar,&this->properties);
     143        return new Tria(this->id,&this->hnodes,&this->hmatice,&this->hmatpar,&this->hnumpar,&this->properties,this->inputs);
    139144
    140145}
     
    160165        hmatpar.Demarshall(&marshalled_dataset);
    161166        hnumpar.Demarshall(&marshalled_dataset);
    162 
     167       
    163168        /*demarshall properties: */
    164169        properties.Demarshall(&marshalled_dataset);
     170       
     171        inputs=DataSetDemarshallRaw(&marshalled_dataset);
    165172
    166173        /*return: */
     
    180187        hnumpar.DeepEcho();
    181188        properties.DeepEcho();
     189        printf("Element inputs\n");
     190        inputs->DeepEcho();
    182191
    183192        return;
     
    195204        hnumpar.Echo();
    196205        properties.Echo();
     206        printf("Element inputs\n");
     207        inputs->Echo();
    197208
    198209        return;
     
    204215        char* marshalled_dataset=NULL;
    205216        int   enum_type=0;
     217        char* marshalled_inputs=NULL;
     218        int   marshalled_inputs_size;
    206219
    207220        /*recover marshalled_dataset: */
     
    225238        /*Marshall properties: */
    226239        properties.Marshall(&marshalled_dataset);
     240
     241        /*Marshall inputs: */
     242        marshalled_inputs_size=inputs->MarshallSize();
     243        marshalled_inputs=inputs->Marshall();
     244        memcpy(marshalled_dataset,marshalled_inputs,marshalled_inputs_size*sizeof(char));
     245        marshalled_dataset+=marshalled_inputs_size;
    227246
    228247        *pmarshalled_dataset=marshalled_dataset;
     
    239258                +hnumpar.MarshallSize()
    240259                +properties.MarshallSize()
     260                +inputs->MarshallSize()
    241261                +sizeof(int); //sizeof(int) for enum type
    242262}
    243263/*}}}*/
     264
     265/*Updates: */
    244266/*FUNCTION Tria::UpdateFromInputs {{{1*/
    245267void  Tria::UpdateFromInputs(void* vinputs){
     
    357379}
    358380/*}}}*/
    359 
     381/*FUNCTION Tria::UpdateInputs {{{1*/
     382void  Tria::UpdateInputs(double* solution, int analysis_type, int sub_analysis_type){
     383
     384        /*Just branch to the correct UpdateInputs generator, according to the type of analysis we are carrying out: */
     385        if (analysis_type==ControlAnalysisEnum){
     386               
     387                UpdateInputsDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
     388        }
     389        else if (analysis_type==DiagnosticAnalysisEnum){
     390       
     391                if (sub_analysis_type==HorizAnalysisEnum){
     392
     393                        UpdateInputsDiagnosticHoriz( solution,analysis_type,sub_analysis_type);
     394                }
     395                else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet");
     396
     397        }
     398        else if (analysis_type==SlopecomputeAnalysisEnum){
     399
     400                UpdateInputsSlopeCompute( solution,analysis_type,sub_analysis_type);
     401        }
     402        else if (analysis_type==PrognosticAnalysisEnum){
     403
     404                UpdateInputsPrognostic( solution,analysis_type,sub_analysis_type);
     405        }
     406        else if (analysis_type==Prognostic2AnalysisEnum){
     407
     408                UpdateInputsPrognostic2(solution,analysis_type,sub_analysis_type);
     409        }
     410        else if (analysis_type==BalancedthicknessAnalysisEnum){
     411
     412                UpdateInputsBalancedthickness( solution,analysis_type,sub_analysis_type);
     413        }
     414        else if (analysis_type==Balancedthickness2AnalysisEnum){
     415
     416                UpdateInputsBalancedthickness2( solution,analysis_type,sub_analysis_type);
     417        }
     418        else if (analysis_type==BalancedvelocitiesAnalysisEnum){
     419
     420                UpdateInputsBalancedvelocities( solution,analysis_type,sub_analysis_type);
     421        }
     422        else{
     423
     424                ISSMERROR("%s%i%s\n","analysis: ",analysis_type," not supported yet");
     425        }
     426}
     427/*}}}*/
     428/*FUNCTION Tria::UpdateInputsDiagnosticHoriz {{{1*/
     429void  Tria::UpdateInputsDiagnosticHoriz(double* solution, int analysis_type, int sub_analysis_type){
     430       
     431       
     432        int i;
     433
     434        const int    numvertices=3;
     435        const int    numdofpervertex=2;
     436        const int    numdof=numdofpervertex*numvertices;
     437       
     438        int          doflist[numdof];
     439        double       values[numdof];
     440        double       vx[numvertices];
     441        double       vy[numvertices];
     442
     443        int          dummy;
     444       
     445        /*Get dof list: */
     446        GetDofList(&doflist[0],&dummy);
     447
     448        /*Use the dof list to index into the solution vector: */
     449        for(i=0;i<numdof;i++){
     450                values[i]=solution[doflist[i]];
     451        }
     452
     453        /*Ok, we have vx and vy in values, fill in vx and vy arrays: */
     454        for(i=0;i<numvertices;i++){
     455                vx[i]=values[i*numdofpervertex+0];
     456                vy[i]=values[i*numdofpervertex+1];
     457        }
     458
     459        /*Add vx and vy as inputs to the tria element: */
     460        this->inputs->AddEinput(new TriaVertexInput(VxEnum,vx));
     461        this->inputs->AddEinput(new TriaVertexInput(VyEnum,vy));
     462}
     463
     464/*}}}*/
     465/*FUNCTION Tria::UpdateInputsSlopeCompute {{{1*/
     466void  Tria::UpdateInputsSlopeCompute(double* solution, int analysis_type, int sub_analysis_type){
     467        ISSMERROR(" not supported yet!");
     468}
     469/*}}}*/
     470/*FUNCTION Tria::UpdateInputsPrognostic {{{1*/
     471void  Tria::UpdateInputsPrognostic(double* solution, int analysis_type, int sub_analysis_type){
     472        ISSMERROR(" not supported yet!");
     473}
     474/*}}}*/
     475/*FUNCTION Tria::UpdateInputsPrognostic2 {{{1*/
     476void  Tria::UpdateInputsPrognostic2(double* solution, int analysis_type, int sub_analysis_type){
     477        ISSMERROR(" not supported yet!");
     478}
     479/*}}}*/
     480/*FUNCTION Tria::UpdateInputsBalancedthickness {{{1*/
     481void  Tria::UpdateInputsBalancedthickness(double* solution, int analysis_type, int sub_analysis_type){
     482        ISSMERROR(" not supported yet!");
     483}
     484/*}}}*/
     485/*FUNCTION Tria::UpdateInputsBalancedthickness2 {{{1*/
     486void  Tria::UpdateInputsBalancedthickness2(double* solution, int analysis_type, int sub_analysis_type){
     487        ISSMERROR(" not supported yet!");
     488}
     489/*}}}*/
     490/*FUNCTION Tria::UpdateInputsBalancedvelocities {{{1*/
     491void  Tria::UpdateInputsBalancedvelocities(double* solution, int analysis_type, int sub_analysis_type){
     492        ISSMERROR(" not supported yet!");
     493}
     494/*}}}*/
     495
     496               
    360497/*Object functions*/
    361498/*FUNCTION Tria::ComputeBasalStress {{{1*/
     
    513650          /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */
    514651          GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2);
    515 
    516 #ifdef _ISSM_DEBUG_
    517         for (i=0;i<num_gauss;i++){
    518                 printf("Gauss coord %i: %lf %lf %lf Weight: %lf\n",i,*(first_gauss_area_coord+i),*(second_gauss_area_coord+i),*(third_gauss_area_coord+i),*(gauss_weights+i));
    519         }
    520 #endif
    521652
    522653        /* Start  looping on the number of gaussian points: */
     
    777908
    778909                }
    779 
    780 #ifdef _DEBUGELEMENTS_
    781                 if(my_rank==RANK && id==ELID){
    782                         printf("      B:\n");
    783                         for(i=0;i<3;i++){
    784                                 for(j=0;j<numdof;j++){
    785                                         printf("%g ",B[i][j]);
    786                                 }
    787                                 printf("\n");
    788                         }
    789                         printf("      Bprime:\n");
    790                         for(i=0;i<3;i++){
    791                                 for(j=0;j<numdof;j++){
    792                                         printf("%g ",Bprime[i][j]);
    793                                 }
    794                                 printf("\n");
    795                         }
    796                 }
    797 #endif
    798910        } // for (ig=0; ig<num_gauss; ig++)
    799911
    800912        /*Add Ke_gg to global matrix Kgg: */
    801913        MatSetValues(Kgg,numdof,doflist,numdof,doflist,(const double*)Ke_gg,ADD_VALUES);
    802 
    803 #ifdef _DEBUGELEMENTS_
    804         if(my_rank==RANK && id==ELID){
    805                 printf("      Ke_gg erms:\n");
    806                 for( i=0; i<numdof; i++){
    807                         for (j=0;j<numdof;j++){
    808                                 printf("%g ",Ke_gg[i][j]);
    809                         }
    810                         printf("\n");
    811                 }
    812                 printf("      Ke_gg row_indices:\n");
    813                 for( i=0; i<numdof; i++){
    814                         printf("%i ",doflist[i]);
    815                 }
    816 
    817         }
    818 #endif
    819914
    820915cleanup_and_return:
     
    11171212                }
    11181213
    1119 #ifdef _DEBUGELEMENTS_
    1120                 if(my_rank==RANK && id==ELID){
    1121                         printf("      B:\n");
    1122                         for(i=0;i<3;i++){
    1123                                 for(j=0;j<numdof;j++){
    1124                                         printf("%g ",B[i][j]);
    1125                                 }
    1126                                 printf("\n");
    1127                         }
    1128                         printf("      Bprime:\n");
    1129                         for(i=0;i<3;i++){
    1130                                 for(j=0;j<numdof;j++){
    1131                                         printf("%g ",Bprime[i][j]);
    1132                                 }
    1133                                 printf("\n");
    1134                         }
    1135                 }
    1136 #endif
    11371214        } // for (ig=0; ig<num_gauss; ig++)
    11381215
     
    11401217        MatSetValues(Kgg,numdof,doflist,numdof,doflist,(const double*)Ke_gg,ADD_VALUES);
    11411218
    1142 #ifdef _DEBUGELEMENTS_
    1143         if(my_rank==RANK && id==ELID){
    1144                 printf("      Ke_gg erms:\n");
    1145                 for( i=0; i<numdof; i++){
    1146                         for (j=0;j<numdof;j++){
    1147                                 printf("%g ",Ke_gg[i][j]);
    1148                         }
    1149                         printf("\n");
    1150                 }
    1151                 printf("      Ke_gg row_indices:\n");
    1152                 for( i=0; i<numdof; i++){
    1153                         printf("%i ",doflist[i]);
    1154                 }
    1155 
    1156         }
    1157 #endif
    11581219
    11591220cleanup_and_return:
     
    14171478        DeleteFriction(&friction);
    14181479
    1419         #ifdef _DEBUGELEMENTS_
    1420         if(my_rank==RANK && id==ELID){
    1421                 printf("   alpha2_list [%g %g %g ]\n",alpha2_list[0],alpha2_list[1],alpha2_list[2]);
    1422         }
    1423         #endif
    1424 
    14251480        /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */
    14261481        GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2);
    1427 
    1428         #ifdef _DEBUGELEMENTS_
    1429         if(my_rank==RANK && id==ELID){
    1430                 printf("   gaussian points: \n");
    1431                 for(i=0;i<num_gauss;i++){
    1432                         printf("    %g %g %g : %g\n",first_gauss_area_coord[i],second_gauss_area_coord[i],third_gauss_area_coord[i],gauss_weights[i]);
    1433                 }
    1434         }
    1435         #endif
    14361482
    14371483        /* Start  looping on the number of gaussian points: */
     
    19051951                }
    19061952
    1907 #ifdef _DEBUGELEMENTS_
    1908                 if(my_rank==RANK && id==ELID){
    1909                         printf("      B:\n");
    1910                         for(i=0;i<3;i++){
    1911                                 for(j=0;j<numdof;j++){
    1912                                         printf("%g ",B[i][j]);
    1913                                 }
    1914                                 printf("\n");
    1915                         }
    1916                         printf("      Bprime:\n");
    1917                         for(i=0;i<3;i++){
    1918                                 for(j=0;j<numdof;j++){
    1919                                         printf("%g ",Bprime[i][j]);
    1920                                 }
    1921                                 printf("\n");
    1922                         }
    1923                 }
    1924 #endif
    19251953        } // for (ig=0; ig<num_gauss; ig++)
    19261954
     
    19281956        MatSetValues(Kgg,numdof,doflist,numdof,doflist,(const double*)Ke_gg,ADD_VALUES);
    19291957
    1930 #ifdef _DEBUGELEMENTS_
    1931         if(my_rank==RANK && id==ELID){
    1932                 printf("      Ke_gg erms:\n");
    1933                 for( i=0; i<numdof; i++){
    1934                         for (j=0;j<numdof;j++){
    1935                                 printf("%g ",Ke_gg[i][j]);
    1936                         }
    1937                         printf("\n");
    1938                 }
    1939                 printf("      Ke_gg row_indices:\n");
    1940                 for( i=0; i<numdof; i++){
    1941                         printf("%i ",doflist[i]);
    1942                 }
    1943 
    1944         }
    1945 #endif
    19461958
    19471959cleanup_and_return:
     
    28512863
    28522864
    2853         #ifdef _DEBUGELEMENTS_
    2854         if(my_rank==RANK && id==ELID){
    2855                 printf("gravity %g\n",matpar->GetG());
    2856                 printf("rho_ice %g\n",matpar->GetRhoIce());
    2857                 printf("thickness [%g,%g,%g]\n",h[0],h[1],h[2]);
    2858                 printf("surface[%g,%g,%g]\n",s[0],s[1],s[2]);
    2859                 printf("bed[%g,%g,%g]\n",b[0],b[1],b[2]);
    2860                 printf("drag [%g,%g,%g]\n",k[0],k[1],k[2]);
    2861         }
    2862         #endif
    2863 
    2864 
    28652865        /* Get gaussian points and weights: */
    28662866        GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); /*We need higher order because our load is order 2*/
    2867 
    2868         #ifdef _DEBUGELEMENTS_
    2869         if(my_rank==RANK && id==ELID){
    2870                 printf("   gaussian points: \n");
    2871                 for(i=0;i<num_gauss;i++){
    2872                         printf("    %g %g %g : %g\n",first_gauss_area_coord[i],second_gauss_area_coord[i],third_gauss_area_coord[i],gauss_weights[i]);
    2873                 }
    2874         }
    2875         #endif
    2876 
    2877 
    28782867
    28792868        /* Start  looping on the number of gaussian points: */
     
    29042893                /*Compute driving stress: */
    29052894                driving_stress_baseline=matpar->GetRhoIce()*matpar->GetG()*thickness;
    2906 
    2907 
    2908                 #ifdef _DEBUGELEMENTS_
    2909                 if(my_rank==RANK && id==ELID){
    2910                         printf("      gaussian %i\n",ig);
    2911                         printf("      thickness %g\n",thickness);
    2912                         printf("      slope(%g,%g)\n",slope[0],slope[1]);
    2913                         printf("      Jdet %g\n",Jdet);
    2914                         printf("      gaussweigth %g\n",gauss_weight);
    2915                         printf("      l1l2l3 (%g,%g,%g)\n",l1l2l3[0],l1l2l3[1],l1l2l3[2]);
    2916                         if(friction_type==1)printf("      plastic_stress(%g)\n",plastic_stress);
    2917                 }
    2918                 #endif
    29192895
    29202896                /*Build pe_g_gaussian vector: */
     
    29382914
    29392915        } //for (ig=0; ig<num_gauss; ig++)
    2940 
    2941         #ifdef _DEBUGELEMENTS_
    2942         if(my_rank==RANK && id==ELID){
    2943                 printf("      pe_g->terms\n",ig);
    2944                 for( i=0; i<pe_g->nrows; i++){
    2945                         printf("%g ",*(pe_g->terms+i));
    2946                 }
    2947                 printf("\n");
    2948                 printf("      pe_g->row_indices\n",ig);
    2949                 for( i=0; i<pe_g->nrows; i++){
    2950                         printf("%i ",*(pe_g->row_indices+i));
    2951                 }
    2952         }
    2953         #endif
    29542916
    29552917        /*Add pe_g to global vector pg: */
     
    37873749        GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2);
    37883750
    3789 #ifdef _DEBUGELEMENTS_
    3790         if(my_rank==RANK && id==ELID){
    3791                 printf("   gaussian points: \n");
    3792                 for(i=0;i<num_gauss;i++){
    3793                         printf("    %g %g %g : %g\n",first_gauss_area_coord[i],second_gauss_area_coord[i],third_gauss_area_coord[i],gauss_weights[i]);
    3794                 }
    3795         }
    3796 #endif
    3797 
    37983751        /* Start  looping on the number of gaussian points: */
    37993752        for (ig=0; ig<num_gauss; ig++){
     
    38063759                /* Get Jacobian determinant: */
    38073760                GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss_l1l2l3);
    3808 #ifdef _ISSM_DEBUG_
    3809                 printf("Element id %i Jacobian determinant: %g\n",GetId(),Jdet);
    3810 #endif
    38113761
    38123762                /* Get nodal functions value at gaussian point:*/
     
    39343884        GetNodalFunctionsDerivatives(&dh1dh3[0][0],xyz_list, gauss_l1l2l3);
    39353885
    3936         #ifdef _ISSM_DEBUG_
    3937         for (i=0;i<3;i++){
    3938                 printf("Node %i  dh/dx=%lf dh/dy=%lf \n",i,dh1dh3[0][i],dh1dh3[1][i]);
    3939         }
    3940         #endif
    3941 
    39423886        /*Build B: */
    39433887        for (i=0;i<numgrids;i++){
     
    39743918        /*Get dh1dh2dh3 in actual coordinate system: */
    39753919        GetNodalFunctions(&l1l2l3[0],gauss_l1l2l3);
    3976 
    3977 #ifdef _ISSM_DEBUG_
    3978         for (i=0;i<3;i++){
    3979                 printf("Node %i  h=%lf \n",i,l1l2l3[i]);
    3980         }
    3981 #endif
    39823920
    39833921        /*Build B_prog: */
     
    45584496        /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */
    45594497        GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 4);
    4560 #ifdef _ISSM_DEBUG_
    4561         for (i=0;i<num_gauss;i++){
    4562                 printf("Gauss coord %i: %lf %lf %lf Weight: %lf\n",i,*(first_gauss_area_coord+i),*(second_gauss_area_coord+i),*(third_gauss_area_coord+i),*(gauss_weights+i));
    4563         }
    4564 #endif
    45654498
    45664499        /* Start  looping on the number of gaussian points: */
     
    45924525                /* Get nodal functions value at gaussian point:*/
    45934526                GetNodalFunctions(l1l2l3, gauss_l1l2l3);
    4594 #ifdef _ISSM_DEBUG_
    4595                 printf("viscositycomp %g thickness %g dvx [%g %g] dvy [%g %g]  dadjx [%g %g] dadjy[%g %g]\n",viscosity_complement,thickness,dvx[0],dvx[1],dvy[0],dvy[1],dadjx[0],dadjx[1],dadjy[0],dadjy[1]);
    4596 #endif
    45974527
    45984528                /*Get nodal functions derivatives*/
     
    47454675        GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 4);
    47464676
    4747         #ifdef _DEBUGELEMENTS_
    4748         if(my_rank==RANK && id==ELID){
    4749                 printf("   gaussian points: \n");
    4750                 for(i=0;i<num_gauss;i++){
    4751                         printf("    %g %g %g : %g\n",first_gauss_area_coord[i],second_gauss_area_coord[i],third_gauss_area_coord[i],gauss_weights[i]);
    4752                 }
    4753         }
    4754         #endif
    4755        
    47564677        /* Start  looping on the number of gaussian points: */
    47574678        for (ig=0; ig<num_gauss; ig++){
     
    47994720                GetParameterValue(&alpha_complement, &alpha_complement_list[0],gauss_l1l2l3);
    48004721                GetParameterValue(&drag, &this->properties.k[0],gauss_l1l2l3);
    4801                 #ifdef _ISSM_DEBUG_
    4802                         printf("Drag complement: %20.20lf Drag: %20.20lf\n",alpha_complement,drag);
    4803                 #endif
    48044722
    48054723                /*recover lambda and mu: */
    48064724                GetParameterValue(&lambda, &adjx_list[0],gauss_l1l2l3);
    48074725                GetParameterValue(&mu, &adjy_list[0],gauss_l1l2l3);
    4808                 #ifdef _ISSM_DEBUG_
    4809                         printf("Adjoint vector %20.20lf %20.20lf\n",lambda,mu);
    4810                 #endif
    48114726                       
    48124727                /*recover vx and vy: */
    48134728                GetParameterValue(&vx, &vx_list[0],gauss_l1l2l3);
    48144729                GetParameterValue(&vy, &vy_list[0],gauss_l1l2l3);
    4815                 #ifdef _ISSM_DEBUG_
    4816                         printf("Velocity vector %20.20lf %20.20lf\n",vx,vy);
    4817                 #endif
    48184730
    48194731                /* Get Jacobian determinant: */
    48204732                GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss_l1l2l3);
    4821                 #ifdef _ISSM_DEBUG_
    4822                 printf("Element id %i Jacobian determinant: %lf\n",GetId(),Jdet);
    4823                 #endif
    48244733               
    48254734                /* Get nodal functions value at gaussian point:*/
     
    49794888        GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 4);
    49804889
    4981 #ifdef _DEBUGELEMENTS_
    4982         if(my_rank==RANK && id==ELID){
    4983                 printf("   gaussian points: \n");
    4984                 for(i=0;i<num_gauss;i++){
    4985                         printf("    %g %g %g : %g\n",first_gauss_area_coord[i],second_gauss_area_coord[i],third_gauss_area_coord[i],gauss_weights[i]);
    4986                 }
    4987         }
    4988 #endif
    4989 
    49904890        /* Start  looping on the number of gaussian points: */
    49914891        for (ig=0; ig<num_gauss; ig++){
     
    50334933                GetParameterValue(&alpha_complement, &alpha_complement_list[0],gauss_l1l2l3);
    50344934                GetParameterValue(&drag, &this->properties.k[0],gauss_l1l2l3);
    5035 #ifdef _ISSM_DEBUG_
    5036                 printf("Drag complement: %20.20lf Drag: %20.20lf\n",alpha_complement,drag);
    5037 #endif
    50384935
    50394936                /*recover lambda mu and xi: */
     
    50414938                GetParameterValue(&mu, &adjy_list[0],gauss_l1l2l3);
    50424939                GetParameterValue(&xi, &adjz_list[0],gauss_l1l2l3);
    5043 #ifdef _ISSM_DEBUG_
    5044                 printf("Adjoint vector %20.20lf %20.20lf\n",lambda,mu);
    5045 #endif
    50464940
    50474941                /*recover vx vy and vz: */
     
    50494943                GetParameterValue(&vy, &vy_list[0],gauss_l1l2l3);
    50504944                GetParameterValue(&vz, &vz_list[0],gauss_l1l2l3);
    5051 #ifdef _ISSM_DEBUG_
    5052                 printf("Velocity vector %20.20lf %20.20lf\n",vx,vy);
    50534945
    50544946                /*Get normal vecyor to the bed */
     
    50584950                bed_normal[1]=-surface_normal[1];
    50594951                bed_normal[2]=-surface_normal[2];
    5060 #endif
    50614952
    50624953                /* Get Jacobian determinant: */
    50634954                GetJacobianDeterminant3d(&Jdet, &xyz_list[0][0],gauss_l1l2l3);
    5064 #ifdef _ISSM_DEBUG_
    5065                 printf("Element id %i Jacobian determinant: %lf\n",GetId(),Jdet);
    5066 #endif
    50674955
    50684956                /* Get nodal functions value at gaussian point:*/
  • issm/trunk/src/c/objects/Tria.h

    r3588 r3599  
    3434
    3535                ElementProperties properties;
     36                DataSet* inputs;
    3637       
    3738        public:
     
    4041                Tria();
    4142                Tria(int tria_id,int* tria_node_ids, int tria_matice_id, int tria_matpar_id, int tria_numpar_id, ElementProperties* tria_properties);
    42                 Tria(int tria_id,Hook* tria_hnodes, Hook* tria_hmatice, Hook* tria_hmatpar, Hook* tria_hnumpar, ElementProperties* tria_properties);
     43                Tria(int tria_id,Hook* tria_hnodes, Hook* tria_hmatice, Hook* tria_hmatpar, Hook* tria_hnumpar, ElementProperties* tria_properties,DataSet* tria_inputs);
    4344                Tria(int i, IoModel* iomodel);
    4445                ~Tria();
     
    5758                int   MyRank();
    5859                void  SetClone(int* minranks);
    59                 void  UpdateFromDakota(void* inputs);
    60                 void  UpdateFromInputs(void* inputs);
    61         /*}}}*/
     60                /*}}}*/
    6261                /*FUNCTION element numerical routines {{{1*/
    6362                void  CreateKMatrix(Mat Kgg,void* inputs,int analysis_type,int sub_analysis_type);
     
    124123                double GetArea(void);
    125124                double GetAreaCoordinate(double x, double y, int which_one);
     125
     126                /*updates:*/
     127                void  UpdateFromDakota(void* inputs);
     128                void  UpdateFromInputs(void* inputs);
     129                void  UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
     130                void  UpdateInputsDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);
     131                void  UpdateInputsSlopeCompute( double* solution,int analysis_type,int sub_analysis_type);
     132                void  UpdateInputsPrognostic( double* solution,int analysis_type,int sub_analysis_type);
     133                void  UpdateInputsPrognostic2(double* solution,int analysis_type,int sub_analysis_type);
     134                void  UpdateInputsBalancedthickness( double* solution,int analysis_type,int sub_analysis_type);
     135                void  UpdateInputsBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type);
     136                void  UpdateInputsBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type);
     137
    126138                /*}}}*/
    127139
  • issm/trunk/src/m/enum/AirEnum.m

    r3589 r3599  
    77%      macro=AirEnum()
    88
    9 macro=76;
     9macro=77;
  • issm/trunk/src/m/enum/DofVecEnum.m

    r3589 r3599  
    77%      macro=DofVecEnum()
    88
    9 macro=70;
     9macro=71;
  • issm/trunk/src/m/enum/GeographyEnum.m

    r3589 r3599  
    77%      macro=GeographyEnum()
    88
    9 macro=71;
     9macro=72;
  • issm/trunk/src/m/enum/IceEnum.m

    r3589 r3599  
    77%      macro=IceEnum()
    88
    9 macro=75;
     9macro=76;
  • issm/trunk/src/m/enum/IceSheetEnum.m

    r3589 r3599  
    77%      macro=IceSheetEnum()
    88
    9 macro=72;
     9macro=73;
  • issm/trunk/src/m/enum/IceShelfEnum.m

    r3589 r3599  
    77%      macro=IceShelfEnum()
    88
    9 macro=73;
     9macro=74;
  • issm/trunk/src/m/enum/MelangeEnum.m

    r3589 r3599  
    77%      macro=MelangeEnum()
    88
    9 macro=77;
     9macro=78;
  • issm/trunk/src/m/enum/ParamEnum.m

    r3589 r3599  
    77%      macro=ParamEnum()
    88
    9 macro=66;
     9macro=67;
  • issm/trunk/src/m/enum/ResultEnum.m

    r3589 r3599  
    77%      macro=ResultEnum()
    88
    9 macro=67;
     9macro=68;
  • issm/trunk/src/m/enum/RgbEnum.m

    r3589 r3599  
    77%      macro=RgbEnum()
    88
    9 macro=68;
     9macro=69;
  • issm/trunk/src/m/enum/SpcEnum.m

    r3589 r3599  
    77%      macro=SpcEnum()
    88
    9 macro=69;
     9macro=70;
  • issm/trunk/src/m/enum/WaterEnum.m

    r3589 r3599  
    77%      macro=WaterEnum()
    88
    9 macro=74;
     9macro=75;
  • issm/trunk/src/m/solutions/jpl/diagnostic_core_nonlinear.m

    r3484 r3599  
    5050                %Solve 
    5151                [soln(count).u_f]=Solver(K_ff,p_f,[],m.parameters);
    52                
     52
    5353                %Merge back to g set
    5454                [soln(count).u_g]= Mergesolutionfromftog( soln(count).u_f, m.Gmn, m.ys, m.nodesets );
     55
     56                %Update elements with new solution
     57                [m.elements]=UpdateInputs(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,soln(count).u_g,analysis_type,sub_analysis_type);
     58                error;
    5559               
    5660                %Deal with penalty loads
  • issm/trunk/src/mex/Makefile.am

    r3529 r3599  
    5959                                TriMeshRefine\
    6060                                UpdateFromInputs\
     61                                UpdateInputs\
    6162                                UpdateVertexPositions\
    6263                                UpdateGeometry
     
    247248                          UpdateFromInputs/UpdateFromInputs.h
    248249
     250UpdateInputs_SOURCES = UpdateInputs/UpdateInputs.cpp\
     251                          UpdateInputs/UpdateInputs.h
     252
    249253UpdateGeometry_SOURCES = UpdateGeometry/UpdateGeometry.cpp\
    250254                          UpdateGeometry/UpdateGeometry.h
Note: See TracChangeset for help on using the changeset viewer.