Changeset 3649


Ignore:
Timestamp:
05/01/10 11:59:56 (15 years ago)
Author:
Eric.Larour
Message:

DataSet compiling

Location:
issm/trunk/src/c
Files:
8 edited

Legend:

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

    r3633 r3649  
    566566/*Objects methods*/
    567567/*FUNCTION DataSet::ComputeBasalStress{{{1*/
    568 void DataSet::ComputeBasalStress(Vec sigma_b,void* inputs,int analysis_type,int sub_analysis_type){
     568void DataSet::ComputeBasalStress(Vec sigma_b,int analysis_type,int sub_analysis_type){
    569569
    570570        vector<Object*>::iterator object;
     
    576576
    577577                        element=(Element*)(*object);
    578                         element->ComputeBasalStress(sigma_b,inputs,analysis_type,sub_analysis_type);
     578                        element->ComputeBasalStress(sigma_b,analysis_type,sub_analysis_type);
    579579                }
    580580        }
     
    583583/*}}}*/
    584584/*FUNCTION DataSet::ComputePressure{{{1*/
    585 void DataSet::ComputePressure(Vec p_g,void* inputs,int analysis_type,int sub_analysis_type){
     585void DataSet::ComputePressure(Vec p_g,int analysis_type,int sub_analysis_type){
    586586
    587587        vector<Object*>::iterator object;
     
    593593
    594594                        element=(Element*)(*object);
    595                         element->ComputePressure(p_g,inputs,analysis_type,sub_analysis_type);
     595                        element->ComputePressure(p_g,analysis_type,sub_analysis_type);
    596596                }
    597597        }
     
    600600/*}}}*/
    601601/*FUNCTION DataSet::ComputeStrainRate{{{1*/
    602 void DataSet::ComputeStrainRate(Vec eps,void* inputs,int analysis_type,int sub_analysis_type){
     602void DataSet::ComputeStrainRate(Vec eps,int analysis_type,int sub_analysis_type){
    603603
    604604        vector<Object*>::iterator object;
     
    610610
    611611                        element=(Element*)(*object);
    612                         element->ComputeStrainRate(eps,inputs,analysis_type,sub_analysis_type);
     612                        element->ComputeStrainRate(eps,analysis_type,sub_analysis_type);
    613613                }
    614614        }
     
    617617/*}}}*/
    618618/*FUNCTION DataSet::Configure{{{1*/
    619 void DataSet::Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,DataSet* parameters){
     619void DataSet::Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,Parameters* parameters){
    620620
    621621        vector<Object*>::iterator object;
     
    633633                if(EnumIsLoad((*object)->Enum())){
    634634                        load=(Load*)(*object);
    635                         load->Configure(elements,nodes,materials,parameters);
     635                        load->Configure(elements,loads,nodes,vertices,materials,parameters);
    636636                }
    637637
     
    645645/*}}}*/
    646646/*FUNCTION DataSet::CostFunction{{{1*/
    647 void  DataSet::CostFunction(double* pJ,void* inputs,int analysis_type,int sub_analysis_type){
     647void  DataSet::CostFunction(double* pJ,int analysis_type,int sub_analysis_type){
    648648
    649649        double J=0;;
     
    657657
    658658                        element=(Element*)(*object);
    659                         J+=element->CostFunction(inputs,analysis_type,sub_analysis_type);
     659                        J+=element->CostFunction(analysis_type,sub_analysis_type);
    660660
    661661                }
     
    668668/*}}}*/
    669669/*FUNCTION DataSet::CreateKMatrix{{{1*/
    670 void  DataSet::CreateKMatrix(Mat Kgg,void* inputs,int analysis_type,int sub_analysis_type){
     670void  DataSet::CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type){
    671671
    672672        vector<Object*>::iterator object;
     
    679679
    680680                        element=(Element*)(*object);
    681                         element->CreateKMatrix(Kgg,inputs,analysis_type,sub_analysis_type);
     681                        element->CreateKMatrix(Kgg,analysis_type,sub_analysis_type);
    682682                }
    683683                if(EnumIsLoad((*object)->Enum())){
    684684
    685685                        load=(Load*)(*object);
    686                         load->CreateKMatrix(Kgg,inputs,analysis_type,sub_analysis_type);
     686                        load->CreateKMatrix(Kgg,analysis_type,sub_analysis_type);
    687687                }
    688688        }
     
    719719/*}}}*/
    720720/*FUNCTION DataSet::CreatePVector{{{1*/
    721 void  DataSet::CreatePVector(Vec pg,void* inputs,int analysis_type,int sub_analysis_type){
     721void  DataSet::CreatePVector(Vec pg,int analysis_type,int sub_analysis_type){
    722722
    723723        vector<Object*>::iterator object;
     
    730730
    731731                        element=(Element*)(*object);
    732                         element->CreatePVector(pg,inputs,analysis_type,sub_analysis_type);
     732                        element->CreatePVector(pg,analysis_type,sub_analysis_type);
    733733                }
    734734                if(EnumIsLoad((*object)->Enum())){
    735735
    736736                        load=(Load*)(*object);
    737                         load->CreatePVector(pg,inputs,analysis_type,sub_analysis_type);
     737                        load->CreatePVector(pg,analysis_type,sub_analysis_type);
    738738                }               
    739739        }
     
    824824/*}}}*/
    825825/*FUNCTION DataSet::Du{{{1*/
    826 void  DataSet::Du(Vec du_g,void* inputs,int analysis_type,int sub_analysis_type){
     826void  DataSet::Du(Vec du_g,int analysis_type,int sub_analysis_type){
    827827
    828828
     
    835835
    836836                        element=(Element*)(*object);
    837                         element->Du(du_g,inputs,analysis_type,sub_analysis_type);
     837                        element->Du(du_g,analysis_type,sub_analysis_type);
    838838                }
    839839        }
     
    980980/*}}}*/
    981981/*FUNCTION DataSet::Gradj{{{1*/
    982 void  DataSet::Gradj(Vec grad_g,void* inputs,int analysis_type,int sub_analysis_type,char* control_type){
     982void  DataSet::Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,char* control_type){
    983983
    984984
     
    991991
    992992                        element=(Element*)(*object);
    993                         element->Gradj(grad_g,inputs,analysis_type,sub_analysis_type,control_type);
     993                        element->Gradj(grad_g,analysis_type,sub_analysis_type,control_type);
    994994                }
    995995        }
     
    10241024/*}}}*/
    10251025/*FUNCTION DataSet::MeltingConstraints{{{1*/
    1026 void  DataSet::MeltingConstraints(int* pconverged, int* pnum_unstable_constraints,void* inputs,int analysis_type,int sub_analysis_type){
     1026void  DataSet::MeltingConstraints(int* pconverged, int* pnum_unstable_constraints,int analysis_type,int sub_analysis_type){
    10271027
    10281028        /* generic object pointer: */
     
    10441044                        pengrid=(Pengrid*)(*object);
    10451045
    1046                         pengrid->PenaltyConstrain(&unstable,inputs,analysis_type,sub_analysis_type);
     1046                        pengrid->PenaltyConstrain(&unstable,analysis_type,sub_analysis_type);
    10471047
    10481048                        num_unstable_constraints+=unstable;
     
    10661066/*}}}*/
    10671067/*FUNCTION DataSet::Misfit{{{1*/
    1068 void  DataSet::Misfit(double* pJ,void* inputs,int analysis_type,int sub_analysis_type){
     1068void  DataSet::Misfit(double* pJ,int analysis_type,int sub_analysis_type){
    10691069
    10701070        double J=0;;
     
    10781078
    10791079                        element=(Element*)(*object);
    1080                         J+=element->Misfit(inputs,analysis_type,sub_analysis_type);
     1080                        J+=element->Misfit(analysis_type,sub_analysis_type);
    10811081
    10821082                }
     
    11601160/*}}}*/
    11611161/*FUNCTION DataSet::PenaltyCreateKMatrix{{{1*/
    1162 void  DataSet::PenaltyCreateKMatrix(Mat Kgg,void* inputs,double kmax,int analysis_type,int sub_analysis_type){
     1162void  DataSet::PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type){
    11631163
    11641164        vector<Object*>::iterator object;
     
    11701170
    11711171                        load=(Load*)(*object);
    1172                         load->PenaltyCreateKMatrix(Kgg,inputs,kmax,analysis_type,sub_analysis_type);
     1172                        load->PenaltyCreateKMatrix(Kgg,kmax,analysis_type,sub_analysis_type);
    11731173                }
    11741174        }
     
    11771177/*}}}*/
    11781178/*FUNCTION DataSet::PenaltyCreatePVector{{{1*/
    1179 void  DataSet::PenaltyCreatePVector(Vec pg,void* inputs,double kmax,int analysis_type,int sub_analysis_type){
     1179void  DataSet::PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type){
    11801180
    11811181        vector<Object*>::iterator object;
     
    11871187
    11881188                        load=(Load*)(*object);
    1189                         load->PenaltyCreatePVector(pg,inputs,kmax,analysis_type,sub_analysis_type);
     1189                        load->PenaltyCreatePVector(pg,kmax,analysis_type,sub_analysis_type);
    11901190                }               
    11911191        }
     
    13291329/*}}}*/
    13301330/*FUNCTION DataSet::SurfaceArea{{{1*/
    1331 void  DataSet::SurfaceArea(double* pS,void* inputs,int analysis_type,int sub_analysis_type){
     1331void  DataSet::SurfaceArea(double* pS,int analysis_type,int sub_analysis_type){
    13321332
    13331333        double S=0;;
     
    13411341
    13421342                        element=(Element*)(*object);
    1343                         S+=element->SurfaceArea(inputs,analysis_type,sub_analysis_type);
     1343                        S+=element->SurfaceArea(analysis_type,sub_analysis_type);
    13441344
    13451345                }
     
    13681368}
    13691369/*}}}*/
    1370 /*FUNCTION DataSet::UpdateFromInputs{{{1*/
    1371 void  DataSet::UpdateFromInputs(void* inputs){
    1372 
    1373         vector<Object*>::iterator object;
    1374         Element* element=NULL;
    1375         Load* load=NULL;
    1376         Material* material=NULL;
    1377         Node* node=NULL;
    1378 
    1379         for ( object=objects.begin() ; object < objects.end(); object++ ){
    1380 
    1381                 if(EnumIsElement((*object)->Enum())){
    1382 
    1383                         element=(Element*)(*object);
    1384                         element->UpdateFromInputs(inputs);
    1385                 }
    1386                 if(EnumIsLoad((*object)->Enum())){
    1387 
    1388                         load=(Load*)(*object);
    1389                         load->UpdateFromInputs(inputs);
    1390                 }
    1391                 if(EnumIsMaterial((*object)->Enum())){
    1392 
    1393                         material=(Material*)(*object);
    1394                         material->UpdateFromInputs(inputs);
    1395                 }
    1396                 if((*object)->Enum()==NodeEnum){
    1397                         node=(Node*)(*object);
    1398                         node->UpdateFromInputs(inputs);
    1399                 }               
    1400         }
    1401 
    1402 }
    1403 /*}}}*/
    14041370/*FUNCTION DataSet::UpdateVertexPositions{{{1*/
    14051371void  DataSet::UpdateVertexPositions(double* thickness,double* bed){
  • issm/trunk/src/c/DataSet/DataSet.h

    r3621 r3649  
    1313#include "../toolkits/toolkits.h"
    1414#include "../objects/Object.h"
     15class Inputs;
     16class Parameters;
    1517
    1618class DataSet{
    1719       
    18         private:
     20        public:
    1921               
    2022                /*internals: */
     
    2931                int*            sorted_ids;
    3032                int*            id_offsets;
    31 
    32         public:
    3333
    3434                /*constructors, destructors: {{{1*/
     
    6262                void  FlagNodeSets(Vec pv_g, Vec pv_m, Vec pv_n, Vec pv_f, Vec pv_s);
    6363                void  clear();
    64                 void  Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,DataSet* parameters);
     64                void Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,Parameters* parameters);
    6565                Object* GetObjectByOffset(int offset);
    6666                Object* GetObjectById(int* poffset,int eid);
     
    6868                void  SetSorting(int* in_sorted_ids,int* in_id_offsets);
    6969                void  Sort();
    70                 void  CreateKMatrix(Mat Kgg,void* inputs, int analysis_type,int sub_analysis_type);
    71                 void  CreatePVector(Vec pg,void* inputs, int analysis_type,int sub_analysis_type);
    72                 void  UpdateFromInputs(void* inputs);
     70                void  CreateKMatrix(Mat Kgg, int analysis_type,int sub_analysis_type);
     71                void  CreatePVector(Vec pg, int analysis_type,int sub_analysis_type);
    7372                void  UpdateInputs(double* solution,int analysis_type,int sub_analysis_type);
    74                 void  PenaltyCreateKMatrix(Mat Kgg,void* inputs,double kmax,int analysis_type,int sub_analysis_type);
    75                 void  PenaltyCreatePVector(Vec pg,void* inputs,double kmax,int analysis_type,int sub_analysis_type);
     73                void  PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
     74                void  PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type);
    7675                int   RiftIsPresent();
    7776                int   MeltingIsPresent();
    78                 void  MeltingConstraints(int* pconverged, int* pnum_unstable_constraints,void* inputs,int analysis_type,int sub_analysis_type);
     77                void  MeltingConstraints(int* pconverged, int* pnum_unstable_constraints,int analysis_type,int sub_analysis_type);
    7978                DataSet* Copy(void);
    80                 void  Du(Vec du_g,void* inputs,int analysis_type,int sub_analysis_type);
    81                 void  Gradj(Vec grad_g,void* inputs,int analysis_type,int sub_analysis_type,char* control_type);
    82                 void  Misfit(double* pJ, void* inputs,int analysis_type,int sub_analysis_type);
    83                 void  CostFunction(double* pJ, void* inputs,int analysis_type,int sub_analysis_type);
    84                 void  SurfaceArea(double* pS, void* inputs,int analysis_type,int sub_analysis_type);
     79                void  Du(Vec du_g,int analysis_type,int sub_analysis_type);
     80                void  Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,char* control_type);
     81                void  Misfit(double* pJ, int analysis_type,int sub_analysis_type);
     82                void  CostFunction(double* pJ, int analysis_type,int sub_analysis_type);
     83                void  SurfaceArea(double* pS, int analysis_type,int sub_analysis_type);
    8584                void  FieldAverageOntoVertices(Vec fieldsum,Vec connectivity,double* field);
    8685                void  FieldDepthAverageAtBase(Vec field,double* field_serial,char* fieldname);
    8786                int   DeleteObject(Object* object);
    88                 void  ComputeBasalStress(Vec sigma_b,void* inputs,int analysis_type,int sub_analysis_type);
    89                 void  ComputePressure(Vec p_g,void* inputs,int analysis_type,int sub_analysis_type);
    90                 void  ComputeStrainRate(Vec eps,void* inputs,int analysis_type,int sub_analysis_type);
     87                void  ComputeBasalStress(Vec sigma_b,int analysis_type,int sub_analysis_type);
     88                void  ComputePressure(Vec p_g,int analysis_type,int sub_analysis_type);
     89                void  ComputeStrainRate(Vec eps,int analysis_type,int sub_analysis_type);
    9190                int   FindResult(void* pvalue, char* name);
    9291                void  FieldExtrude(Vec field,double* field_serial,char* field_name, int collapse);
  • issm/trunk/src/c/DataSet/Inputs.cpp

    r3647 r3649  
    99#endif
    1010
     11
     12#include <vector>
     13#include <functional>
     14#include <algorithm>
     15#include <iostream>
     16
    1117#include "./DataSet.h"
    1218#include "./Inputs.h"
     19
     20#include "../shared/shared.h"
     21#include "../include/macros.h"
     22#include "../EnumDefinitions/EnumDefinitions.h"
     23
     24using namespace std;
     25
    1326
    1427/*Object constructors and destructor*/
     
    1932/*}}}*/
    2033/*FUNCTION Inputs::Inputs(int in_enum){{{1*/
    21 Inputs::Inputs(int in_enum): DataSet(in_enum){
    22 {
     34Inputs::Inputs(int in_enum): DataSet(in_enum) {
    2335        //do nothing;
    2436        return;
  • issm/trunk/src/c/objects/Node.cpp

    r3632 r3649  
    227227/*Object management: {{{1*/
    228228/*FUNCTION Node::Configure {{{2*/
    229 void  Node::Configure(DataSet* nodesin){
     229void  Node::Configure(DataSet* nodesin,DataSet* verticesin){
    230230
    231231        int i;
     
    233233        /*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective
    234234         * datasets, using internal ids and offsets hidden in hooks: */
    235         hvertex.configure(nodesin);
     235        hvertex.configure(verticesin);
    236236        hupper_node.configure(nodesin);
    237237
  • issm/trunk/src/c/objects/Node.h

    r3637 r3649  
    3939                /*}}}*/
    4040                /*FUNCTION object management {{{1*/
    41                 void  Configure(DataSet* nodes);
     41                void  Configure(DataSet* nodes,DataSet* vertices);
    4242                void  DeepEcho();
    4343                void  Demarshall(char** pmarshalled_dataset);
  • issm/trunk/src/c/objects/Numericalflux.cpp

    r3647 r3649  
    6060        int  e1,e2;
    6161        int  i1,i2;
     62        int  j;
    6263        int  pos1,pos2;
    6364        int  num_nodes;
     
    7475
    7576        /*Get left and right elements*/
    76         e1=(double)iomodel->edges[4*i+2]; //edges are [node1 node2 elem1 elem2]
    77         e2=(double)iomodel->edges[4*i+3]; //edges are [node1 node2 elem1 elem2]
     77        e1=(int)iomodel->edges[4*i+2]; //edges are [node1 node2 elem1 elem2]
     78        e2=(int)iomodel->edges[4*i+3]; //edges are [node1 node2 elem1 elem2]
    7879        if (isnan(e2)){
    7980                /* Boundary edge, only one element */
     
    136137        /*Hooks: */
    137138        this->hnodes.Init(numericalflux_node_ids,num_nodes);
    138         this->helements.Init(&numericalflux_elem_ids,num_elems);
    139         this->hmatpar.Init(&numericalflux_mparid,1);
     139        this->helements.Init(numericalflux_elem_ids,num_elems);
    140140
    141141        //intialize  and add as many inputs per element as requested:
  • issm/trunk/src/c/objects/Numericalflux.h

    r3647 r3649  
    2828                Numericalflux(int numericalflux_id,int* numericalflux_node_ids,int numnodes, int* numericalflux_element_ids, int numelements);
    2929                Numericalflux(int numericalflux_id,Hook* numericalflux_hnodes, Hook* numericalflux_helements, Parameters* parameters, Inputs* numericalflux_inputs);
    30                 Numericalflux::Numericalflux(int numericalflux_id,int i, IoModel* iomodel);
     30                Numericalflux(int numericalflux_id,int i, IoModel* iomodel);
    3131                ~Numericalflux();
    3232                /*}}}*/
  • issm/trunk/src/c/objects/objects.h

    r3612 r3649  
    55#ifndef ALL_OBJECTS_H_
    66#define ALL_OBJECTS_H_
    7 
    8 class Object;
    9 class Matice;
    10 class Matpar;
    11 class Node;
    12 class Penta;
    13 class Tria;
    14 class Sing;
    15 class Beam;
    16 class Spc;
    17 class Rgb;
    18 class Icefront;
    19 class Riftfront;
    20 class Penpair;
    21 class Pengrid;
    22 class Numericalflux;
    23 class Param;
    24 class Element;
    25 class NodeSets;
    26 class Model;
    27 class TriaVertexInput;
    28 class DoubleInput;
    29 class IntInput;
    30 class BoolInput;
    31 class Input;
    327
    338/*Abstract class: */
     
    5732#include "./Input.h"
    5833#include "./TriaVertexInput.h"
     34#include "./Vertex.h"
     35#include "./Numpar.h"
    5936#include "./BoolInput.h"
    6037#include "./IntInput.h"
Note: See TracChangeset for help on using the changeset viewer.