Changeset 4702


Ignore:
Timestamp:
07/21/10 15:35:18 (15 years ago)
Author:
Mathieu Morlighem
Message:

Added /MaterialUpdateFromTemperature module and SpawnProcessedInput used to call any function double=f(double) as Paterson

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

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r4656 r4702  
    565565                                        ./modules/InputExtrudex/InputExtrudex.cpp\
    566566                                        ./modules/InputExtrudex/InputExtrudex.h\
     567                                        ./modules/MaterialUpdateFromTemperaturex/MaterialUpdateFromTemperaturex.cpp\
     568                                        ./modules/MaterialUpdateFromTemperaturex/MaterialUpdateFromTemperaturex.h\
    567569                                        ./modules/OutputRiftsx/OutputRiftsx.h\
    568570                                        ./modules/OutputRiftsx/OutputRiftsx.cpp\
     
    11171119                                        ./modules/InputExtrudex/InputExtrudex.cpp\
    11181120                                        ./modules/InputExtrudex/InputExtrudex.h\
     1121                                        ./modules/MaterialUpdateFromTemperaturex/MaterialUpdateFromTemperaturex.cpp\
     1122                                        ./modules/MaterialUpdateFromTemperaturex/MaterialUpdateFromTemperaturex.h\
    11191123                                        ./modules/OutputRiftsx/OutputRiftsx.h\
    11201124                                        ./modules/OutputRiftsx/OutputRiftsx.cpp\
  • issm/trunk/src/c/modules/modules.h

    r4656 r4702  
    4646#include "./InputUpdateFromVectorx/InputUpdateFromVectorx.h"
    4747#include "./MassFluxx/MassFluxx.h"
     48#include "./MaterialUpdateFromTemperaturex/MaterialUpdateFromTemperaturex.h"
    4849#include "./MaxAbsVxx/MaxAbsVxx.h"
    4950#include "./MaxAbsVyx/MaxAbsVyx.h"
  • issm/trunk/src/c/objects/Elements/Beam.h

    r4575 r4702  
    8585                void       InputControlConstrain(int control_type,double cm_min, double cm_max);
    8686                void       InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
    87                 void       InputDepthAverageAtBase(int enum_type,int average_enum_type){ISSMERROR("not implemented yet");}
     87                void     InputDepthAverageAtBase(int enum_type,int average_enum_type){ISSMERROR("not implemented yet");}
    8888                void       InputDuplicate(int original_enum,int new_enum);
    8989                void       InputScale(int enum_type,double scale_factor);
    9090                void       InputToResult(int enum_type,int step,double time);
    91                 double     MassFlux(double* segment);
     91                void       MaterialUpdateFromTemperature(void){ISSMERROR("not implemented yet");};
     92                double  MassFlux(double* segment);
    9293                void       MaxAbsVx(double* pmaxabsvx, bool process_units);
    9394                void       MaxAbsVy(double* pmaxabsvy, bool process_units);
  • issm/trunk/src/c/objects/Elements/Element.h

    r4575 r4702  
    5454                virtual void   UpdateGeometry(void)=0;
    5555                virtual void   InputToResult(int enum_type,int step,double time)=0;
     56                virtual void   MaterialUpdateFromTemperature(void)=0;
    5657                virtual void   ProcessResultsUnits(void)=0;
    5758                virtual void   MinVel(double* pminvel, bool process_units)=0;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r4685 r4702  
    12431243double Penta::MassFlux( double* segment){
    12441244        ISSMERROR(" not supported yet!");
     1245}
     1246/*}}}*/
     1247/*FUNCTION Penta::MaterialUpdateFromTemperature{{{1*/
     1248void  Penta::MaterialUpdateFromTemperature(void){
     1249
     1250        /*Intermediaries*/
     1251        double Taverage;
     1252        double B;
     1253
     1254        /*inputs: */
     1255        bool   collapse;
     1256        Input *TempInput = NULL;
     1257        Input *RheologyBInput = NULL;
     1258
     1259        /*retrieve inputs :*/
     1260        inputs->GetParameterValue(&collapse,CollapseEnum);
     1261
     1262        if (collapse){
     1263                /*find temperature average*/
     1264                this->inputs->GetParameterAverage(&Taverage,TemperatureAverageEnum);
     1265        }
     1266        else{
     1267                /*find 3d temperature*/
     1268                this->inputs->GetParameterAverage(&Taverage,TemperatureEnum);
     1269        }
     1270
     1271        /*Get B from T using Paterson*/
     1272        B=Paterson(Taverage);
     1273
     1274        /*Add input to Matice*/
     1275        this->matice->inputs->AddInput(new DoubleInput(RheologyBEnum,B));
     1276
    12451277}
    12461278/*}}}*/
  • issm/trunk/src/c/objects/Elements/Penta.h

    r4652 r4702  
    9292                void   InputScale(int enum_type,double scale_factor);
    9393                void   InputToResult(int enum_type,int step,double time);
     94                void   MaterialUpdateFromTemperature(void);
    9495                double MassFlux(double* segment);
    9596                void   MaxAbsVx(double* pmaxabsvx, bool process_units);
  • issm/trunk/src/c/objects/Elements/Sing.h

    r4575 r4702  
    8989                void   InputScale(int enum_type,double scale_factor);
    9090                void   InputToResult(int enum_type,int step,double time);
     91                void   MaterialUpdateFromTemperature(void){ISSMERROR("not implemented yet");};
    9192                double MassFlux(double* segment);
    9293                void   MaxAbsVx(double* pmaxabsvx, bool process_units);
  • issm/trunk/src/c/objects/Elements/Tria.h

    r4698 r4702  
    8989                void   InputScale(int enum_type,double scale_factor);
    9090                void   InputToResult(int enum_type,int step,double time);
     91                void   MaterialUpdateFromTemperature(void){ISSMERROR("not implemented yet");};
    9192                double MassFlux(double* segment);
    9293                void   MaxAbsVx(double* pmaxabsvx, bool process_units);
  • issm/trunk/src/c/objects/Inputs/BeamVertexInput.h

    r4698 r4702  
    4141                Input* SpawnBeamInput(int* indices);
    4242                Input* SpawnTriaInput(int* indices);
     43                Input* SpawnProcessedInput(double (*f)(double)){ISSMERROR("not implemented yet");};
    4344                Input* PointwiseDivide(Input* inputB){ISSMERROR("not implemented yet");};
    4445                ElementResult* SpawnResult(int step, double time);
  • issm/trunk/src/c/objects/Inputs/BoolInput.h

    r4698 r4702  
    4141                Input* SpawnBeamInput(int* indices);
    4242                Input* SpawnTriaInput(int* indices);
     43                Input* SpawnProcessedInput(double (*f)(double)){ISSMERROR("not implemented yet");};
    4344                Input* PointwiseDivide(Input* inputB){ISSMERROR("not implemented yet");};
    4445                ElementResult* SpawnResult(int step, double time);
  • issm/trunk/src/c/objects/Inputs/DoubleInput.h

    r4698 r4702  
    4040                Input* SpawnBeamInput(int* indices);
    4141                Input* SpawnTriaInput(int* indices);
     42                Input* SpawnProcessedInput(double (*f)(double)){ISSMERROR("not implemented yet");};
    4243                Input* PointwiseDivide(Input* inputB){ISSMERROR("not implemented yet");};
    4344                ElementResult* SpawnResult(int step, double time);
  • issm/trunk/src/c/objects/Inputs/Input.h

    r4698 r4702  
    4545                virtual Input* SpawnBeamInput(int* indices)=0;
    4646                virtual Input* SpawnTriaInput(int* indices)=0;
     47                virtual Input* SpawnProcessedInput(double (*f)(double))=0;
    4748                virtual Input* PointwiseDivide(Input* inputB)=0;
    4849                virtual ElementResult* SpawnResult(int step, double time)=0;
  • issm/trunk/src/c/objects/Inputs/IntInput.h

    r4698 r4702  
    4141                Input* SpawnBeamInput(int* indices);
    4242                Input* SpawnTriaInput(int* indices);
     43                Input* SpawnProcessedInput(double (*f)(double)){ISSMERROR("not implemented yet");};
    4344                Input* PointwiseDivide(Input* inputB){ISSMERROR("not implemented yet");};
    4445                ElementResult* SpawnResult(int step, double time);
  • issm/trunk/src/c/objects/Inputs/PentaVertexInput.h

    r4698 r4702  
    4040                Input* SpawnBeamInput(int* indices);
    4141                Input* SpawnTriaInput(int* indices);
     42                Input* SpawnProcessedInput(double (*f)(double)){ISSMERROR("not implemented yet");};
    4243                Input* PointwiseDivide(Input* inputB);
    4344                ElementResult* SpawnResult(int step, double time);
  • issm/trunk/src/c/objects/Inputs/SingVertexInput.h

    r4698 r4702  
    4040                Input* SpawnBeamInput(int* indices);
    4141                Input* SpawnTriaInput(int* indices);
     42                Input* SpawnProcessedInput(double (*f)(double)){ISSMERROR("not implemented yet");};
    4243                Input* PointwiseDivide(Input* inputB){ISSMERROR("not implemented yet");};
    4344                ElementResult* SpawnResult(int step, double time);
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.h

    r4698 r4702  
    4141                Input* SpawnBeamInput(int* indices);
    4242                Input* SpawnTriaInput(int* indices);
     43                Input* SpawnProcessedInput(double (*f)(double)){ISSMERROR("not implemented yet");};
    4344                Input* PointwiseDivide(Input* inputB){ISSMERROR("not implemented yet");};
    4445                ElementResult* SpawnResult(int step, double time);
Note: See TracChangeset for help on using the changeset viewer.