Changeset 3967


Ignore:
Timestamp:
05/27/10 10:07:17 (15 years ago)
Author:
Mathieu Morlighem
Message:

moved some Dataset methods to modules

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

Legend:

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

    r3966 r3967  
    577577}
    578578/*}}}*/
    579 /*FUNCTION DataSet::CostFunction{{{1*/
    580 void  DataSet::CostFunction(double* pJ,int analysis_type,int sub_analysis_type){
    581 
    582         double J=0;;
    583 
    584         vector<Object*>::iterator object;
    585         Element* element=NULL;
    586 
    587         for ( object=objects.begin() ; object < objects.end(); object++ ){
    588 
    589                 if(EnumIsElement((*object)->Enum())){
    590 
    591                         element=(Element*)(*object);
    592                         J+=element->CostFunction(analysis_type,sub_analysis_type);
    593 
    594                 }
    595         }
    596 
    597         /*Assign output pointers:*/
    598         *pJ=J;
    599 
    600 }
    601 /*}}}*/
    602579/*FUNCTION DataSet::CreatePartitioningVector{{{1*/
    603580void  DataSet::CreatePartitioningVector(Vec* ppartition,int numberofobjects){
     
    707684        xfree((void**)&truedofs);
    708685        xfree((void**)&alltruedofs);
    709 
    710 }
    711 /*}}}*/
    712 /*FUNCTION DataSet::Du{{{1*/
    713 void  DataSet::Du(Vec du_g,int analysis_type,int sub_analysis_type){
    714 
    715 
    716         vector<Object*>::iterator object;
    717         Element* element=NULL;
    718 
    719         for ( object=objects.begin() ; object < objects.end(); object++ ){
    720 
    721                 if(EnumIsElement((*object)->Enum())){
    722 
    723                         element=(Element*)(*object);
    724                         element->Du(du_g,analysis_type,sub_analysis_type);
    725                 }
    726         }
    727 
    728686
    729687}
     
    966924}
    967925/*}}}*/
    968 /*FUNCTION DataSet::Gradj{{{1*/
    969 void  DataSet::Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,int control_type){
    970 
    971 
    972         vector<Object*>::iterator object;
    973         Element* element=NULL;
    974 
    975         for ( object=objects.begin() ; object < objects.end(); object++ ){
    976 
    977                 if(EnumIsElement((*object)->Enum())){
    978 
    979                         element=(Element*)(*object);
    980                         element->Gradj(grad_g,analysis_type,sub_analysis_type,control_type);
    981                 }
    982         }
    983 
    984 
    985 }               
    986 /*}}}*/
    987926/*FUNCTION DataSet::MeltingIsPresent{{{1*/
    988927int   DataSet::MeltingIsPresent(){
     
    1050989        *pconverged=converged;
    1051990        *pnum_unstable_constraints=num_unstable_constraints;
    1052 }
    1053 /*}}}*/
    1054 /*FUNCTION DataSet::Misfit{{{1*/
    1055 void  DataSet::Misfit(double* pJ,int analysis_type,int sub_analysis_type){
    1056 
    1057         double J=0;;
    1058 
    1059         vector<Object*>::iterator object;
    1060         Element* element=NULL;
    1061 
    1062         for ( object=objects.begin() ; object < objects.end(); object++ ){
    1063 
    1064                 if(EnumIsElement((*object)->Enum())){
    1065 
    1066                         element=(Element*)(*object);
    1067                         J+=element->Misfit(analysis_type,sub_analysis_type);
    1068 
    1069                 }
    1070         }
    1071 
    1072         /*Assign output pointers:*/
    1073         *pJ=J;
    1074 
    1075991}
    1076992/*}}}*/
  • issm/trunk/src/c/DataSet/DataSet.h

    r3966 r3967  
    8181                void  MeltingConstraints(int* pconverged, int* pnum_unstable_constraints,int analysis_type,int sub_analysis_type);
    8282                DataSet* Copy(void);
    83                 void  Du(Vec du_g,int analysis_type,int sub_analysis_type);
    84                 void  Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,int control_type);
    85                 void  Misfit(double* pJ, int analysis_type,int sub_analysis_type);
    86                 void  CostFunction(double* pJ, int analysis_type,int sub_analysis_type);
    8783                void  SurfaceArea(double* pS, int analysis_type,int sub_analysis_type);
    8884                void  FieldAverageOntoVertices(Vec fieldsum,Vec connectivity,double* field);
  • issm/trunk/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp

    r3913 r3967  
    1212int     ConfigureObjectsx( DataSet* elements, DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,Parameters* parameters){
    1313
     14        /*Intermediary*/
    1415        int noerr=1;
    1516        int i;
    16 
    17         extern int num_procs;
    18         extern int my_rank;
     17        Element* element=NULL;
     18        Load* load=NULL;
     19        Node* node=NULL;
    1920       
    2021        //_printf_("      Configuring elements...\n");
    21         elements->Configure(elements,loads,nodes,vertices,materials,parameters);
     22        for (i=0;i<elements->Size();i++){
     23                element=(Element*)elements->GetObjectByOffset(i);
     24                element->Configure(elements,loads,nodes,materials,parameters);
     25        }
    2226        //_printf_("      Configuring loads...\n");
    23         loads->Configure(elements,loads,nodes,vertices,materials,parameters);
     27        for (i=0;i<loads->Size();i++){
     28                load=(Load*)loads->GetObjectByOffset(i);
     29                load->Configure(elements,loads,nodes,vertices,materials,parameters);
     30        }
    2431        //_printf_("      Configuring nodes...\n");
    25         nodes->Configure(elements,loads,nodes,vertices,materials,parameters);
     32        for (i=0;i<nodes->Size();i++){
     33                node=(Node*)nodes->GetObjectByOffset(i);
     34                node->Configure(nodes,vertices);
     35        }
    2636        //_printf_("      Configuring parameters...\n");
     37        /*parameters ARE NOT configured!*/
    2738        parameters->Configure(elements,loads,nodes,vertices,materials,parameters);
    2839
  • issm/trunk/src/c/modules/CostFunctionx/CostFunctionx.cpp

    r3913 r3967  
    1515
    1616        /*Intermediary*/
     17        int    i;
    1718        double fit;
    1819        double S;
     20        Element* element=NULL;
    1921
    2022        /*output: */
    21         double J;
     23        double J=0;
    2224        double J_sum;
    2325       
     
    3335        elements->UpdateInputsFromVector(&S,SurfaceAreaEnum,ConstantEnum);
    3436       
    35         /*Compute gradients: */
    36         elements->CostFunction(&J,analysis_type,sub_analysis_type);
     37        /*Compute cost function: */
     38        for (i=0;i<elements->Size();i++){
     39                element=(Element*)elements->GetObjectByOffset(i);
     40                J+=element->CostFunction(analysis_type,sub_analysis_type);
     41        }
    3742
    3843        /*Sum all J from all cpus of the cluster:*/
  • issm/trunk/src/c/modules/Dofx/Dofx.cpp

    r3913 r3967  
    3232
    3333        /*Initialize dofvecs: */
    34         partition=new DofVec("partition");
     34        partition=new  DofVec("partition");
    3535        tpartition=new DofVec("tpartition");
    3636
  • issm/trunk/src/c/modules/Dux/Dux.cpp

    r3913 r3967  
    2020        double fit=-1;
    2121        double S;
     22        Element* element=NULL;
    2223
    2324        /*output: */
     
    2526
    2627        /*First, get elements and loads configured: */
    27         elements->Configure(elements,loads, nodes, vertices, materials,parameters);
    28         nodes->Configure(elements,loads, nodes, vertices, materials,parameters);
     28        elements->  Configure(elements,loads, nodes, vertices, materials,parameters);
     29        nodes->     Configure(elements,loads, nodes, vertices, materials,parameters);
    2930        parameters->Configure(elements,loads, nodes, vertices, materials,parameters);
    3031
     
    4243
    4344        /*Compute velocity difference: */
    44         elements->Du(du_g,analysis_type,sub_analysis_type);
     45        for (i=0;i<elements->Size();i++){
     46                element=(Element*)elements->GetObjectByOffset(i);
     47                element->Du(du_g,analysis_type,sub_analysis_type);
     48        }
    4549
    4650        /*Assemble vector: */
  • issm/trunk/src/c/modules/Gradjx/Gradjx.cpp

    r3913 r3967  
    1313                        int analysis_type,int sub_analysis_type,int control_type){
    1414
     15        /*Intermediary*/
     16        int i;
     17        Element* element=NULL;
     18
    1519        /*output: */
    1620        Vec grad_g=NULL;
    1721
    1822        /*First, get elements and loads configured: */
    19         elements->Configure(elements,loads, nodes,vertices, materials,parameters);
    20         nodes->Configure(elements,loads, nodes,vertices, materials,parameters);
     23        elements->  Configure(elements,loads, nodes,vertices, materials,parameters);
     24        nodes->     Configure(elements,loads, nodes,vertices, materials,parameters);
    2125        parameters->Configure(elements,loads, nodes,vertices, materials,parameters);
    2226
     
    2529
    2630        /*Compute gradients: */
    27         elements->Gradj(grad_g,analysis_type,sub_analysis_type,control_type);
     31        for (i=0;i<elements->Size();i++){
     32                element=(Element*)elements->GetObjectByOffset(i);
     33                element->Gradj(grad_g,analysis_type,sub_analysis_type,control_type);
     34        }
    2835
    2936        /*Assemble vector: */
  • issm/trunk/src/c/modules/Misfitx/Misfitx.cpp

    r3913 r3967  
    1717        int fit;
    1818        double S;
     19        int i;
     20        Element* element=NULL;
    1921
    2022        /*output: */
    21         double J;
     23        double J=0;
    2224        double J_sum;
    2325       
     
    3234        /*add surface area to elements :*/
    3335        elements->UpdateInputsFromVector(&S,SurfaceAreaEnum,ConstantEnum);
    34        
    3536
    3637        /*Compute Misfit: */
    37         elements->Misfit(&J,analysis_type,sub_analysis_type);
     38        for (i=0;i<elements->Size();i++){
     39                element=(Element*)elements->GetObjectByOffset(i);
     40                J+=element->Misfit(analysis_type,sub_analysis_type);
     41        }
    3842
    3943        /*Sum all J from all cpus of the cluster:*/
Note: See TracChangeset for help on using the changeset viewer.