Changeset 16534
- Timestamp:
- 10/23/13 15:43:20 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 55 added
- 1 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/CMakeLists.txt
r16518 r16534 167 167 ./toolkits/ToolkitOptions.cpp 168 168 ./modules/ModelProcessorx/ModelProcessorx.cpp 169 ./modules/ModelProcessorx/DistributeNumDofs.cpp170 169 ./modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp 171 170 ./modules/ModelProcessorx/NodesPartitioning.cpp -
issm/trunk-jpl/src/c/Makefile.am
r16529 r16534 242 242 ./modules/ModelProcessorx/ModelProcessorx.h\ 243 243 ./modules/ModelProcessorx/ModelProcessorx.cpp\ 244 ./modules/ModelProcessorx/DistributeNumDofs.cpp\245 244 ./modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp\ 246 245 ./modules/ModelProcessorx/NodesPartitioning.cpp\ … … 338 337 ./main/EnvironmentInit.cpp\ 339 338 ./main/EnvironmentFinalize.cpp\ 339 ./analyses/EnumToAnalysis.h\ 340 ./analyses/EnumToAnalysis.cpp\ 341 ./analyses/Analysis.h\ 340 342 ./solutionsequences/solutionsequence_linear.cpp\ 341 343 ./solutionsequences/solutionsequence_nonlinear.cpp\ … … 394 396 ./modules/ModelProcessorx/ExtrudeFromTop/CreateConstraintsExtrudeFromTop.cpp\ 395 397 ./modules/ModelProcessorx/ExtrudeFromTop/CreateLoadsExtrudeFromTop.cpp\ 398 ./analyses/ExtrudeFromBaseAnalysis.h\ 399 ./analyses/ExtrudeFromBaseAnalysis.cpp\ 400 ./analyses/ExtrudeFromTopAnalysis.h\ 401 ./analyses/ExtrudeFromTopAnalysis.cpp\ 402 ./analyses/MasstransportAnalysis.h\ 403 ./analyses/MasstransportAnalysis.cpp\ 404 ./analyses/FreeSurfaceBaseAnalysis.h\ 405 ./analyses/FreeSurfaceBaseAnalysis.cpp\ 406 ./analyses/FreeSurfaceTopAnalysis.h\ 407 ./analyses/FreeSurfaceTopAnalysis.cpp\ 396 408 ./cores/masstransport_core.cpp\ 397 409 ./cores/extrudefrombase_core.cpp\ … … 414 426 ./modules/PostprocessingEnthalpyx/PostprocessingEnthalpyx.h\ 415 427 ./modules/PostprocessingEnthalpyx/PostprocessingEnthalpyx.cpp\ 428 ./analyses/ThermalAnalysis.h\ 429 ./analyses/ThermalAnalysis.cpp\ 430 ./analyses/EnthalpyAnalysis.h\ 431 ./analyses/EnthalpyAnalysis.cpp\ 432 ./analyses/MeltingAnalysis.h\ 433 ./analyses/MeltingAnalysis.cpp\ 416 434 ./cores/thermal_core.cpp\ 417 435 ./solutionsequences/solutionsequence_thermal_nonlinear.cpp … … 467 485 ./cores/adjointbalancethickness_core.cpp\ 468 486 ./cores/AdjointCorePointerFromSolutionEnum.cpp\ 487 ./analyses/AdjointBalancethicknessAnalysis.h\ 488 ./analyses/AdjointBalancethicknessAnalysis.cpp\ 489 ./analyses/AdjointHorizAnalysis.h\ 490 ./analyses/AdjointHorizAnalysis.cpp\ 469 491 ./solutionsequences/solutionsequence_adjoint_linear.cpp 470 492 … … 486 508 ./modules/ModelProcessorx/HydrologyDCEfficient/CreateLoadsHydrologyDCEfficient.cpp \ 487 509 ./modules/ModelProcessorx/HydrologyDCEfficient/CreateParametersHydrologyDCEfficient.cpp \ 510 ./analyses/HydrologyDCEfficientAnalysis.h\ 511 ./analyses/HydrologyDCEfficientAnalysis.cpp\ 512 ./analyses/HydrologyDCInefficientAnalysis.h\ 513 ./analyses/HydrologyDCInefficientAnalysis.cpp\ 514 ./analyses/HydrologyShreveAnalysis.h\ 515 ./analyses/HydrologyShreveAnalysis.cpp\ 488 516 ./cores/hydrology_core.cpp\ 489 517 ./solutionsequences/solutionsequence_hydro_nonlinear.cpp … … 503 531 ./modules/ModelProcessorx/StressbalanceSIA/CreateConstraintsStressbalanceSIA.cpp \ 504 532 ./modules/ModelProcessorx/StressbalanceSIA/CreateLoadsStressbalanceSIA.cpp \ 533 ./analyses/StressbalanceAnalysis.h\ 534 ./analyses/StressbalanceAnalysis.cpp\ 535 ./analyses/StressbalanceSIAAnalysis.h\ 536 ./analyses/StressbalanceSIAAnalysis.cpp\ 537 ./analyses/StressbalanceVerticalAnalysis.h\ 538 ./analyses/StressbalanceVerticalAnalysis.cpp\ 505 539 ./cores/stressbalance_core.cpp\ 506 540 ./solutionsequences/solutionsequence_stokescoupling_nonlinear.cpp … … 515 549 ./modules/ModelProcessorx/Balancevelocity/CreateConstraintsBalancevelocity.cpp\ 516 550 ./modules/ModelProcessorx/Balancevelocity/CreateLoadsBalancevelocity.cpp\ 551 ./analyses/BalancevelocityAnalysis.h\ 552 ./analyses/BalancevelocityAnalysis.cpp\ 553 ./analyses/SmoothedSurfaceSlopeXAnalysis.h\ 554 ./analyses/SmoothedSurfaceSlopeXAnalysis.cpp\ 555 ./analyses/SmoothedSurfaceSlopeYAnalysis.h\ 556 ./analyses/SmoothedSurfaceSlopeYAnalysis.cpp\ 557 ./analyses/BalancethicknessAnalysis.h\ 558 ./analyses/BalancethicknessAnalysis.cpp\ 559 ./analyses/BalancethicknessSoftAnalysis.h\ 560 ./analyses/BalancethicknessSoftAnalysis.cpp\ 517 561 ./cores/balancethickness_core.cpp \ 518 562 ./cores/balancevelocity_core.cpp \ … … 528 572 ./modules/ModelProcessorx/L2ProjectionTop/CreateConstraintsL2ProjectionTop.cpp\ 529 573 ./modules/ModelProcessorx/L2ProjectionTop/CreateLoadsL2ProjectionTop.cpp\ 574 ./analyses/L2ProjectionBaseAnalysis.h\ 575 ./analyses/L2ProjectionBaseAnalysis.cpp\ 530 576 ./cores/surfaceslope_core.cpp\ 531 577 ./cores/bedslope_core.cpp … … 536 582 ./modules/ModelProcessorx/MeshDeformation/CreateConstraintsMeshDeformation.cpp\ 537 583 ./modules/ModelProcessorx/MeshDeformation/CreateLoadsMeshDeformation.cpp\ 584 ./analyses/MeshdeformationAnalysis.h\ 585 ./analyses/MeshdeformationAnalysis.cpp\ 538 586 ./cores/meshdeformation_core.cpp 539 587 #}}} 540 588 #Gia sources {{{ 541 589 gia_sources = ./cores/gia_core.cpp\ 590 ./analyses/GiaAnalysis.h\ 591 ./analyses/GiaAnalysis.cpp\ 542 592 ./modules/ModelProcessorx/Gia/UpdateElementsGia.cpp\ 543 593 ./modules/ModelProcessorx/Gia/CreateNodesGia.cpp \ … … 558 608 #Damage sources {{{ 559 609 damage_sources = ./cores/damage_core.cpp\ 560 ./modules/ModelProcessorx/Damage/UpdateElementsDamage.cpp\ 561 ./modules/ModelProcessorx/Damage/CreateNodesDamage.cpp \ 562 ./modules/ModelProcessorx/Damage/CreateConstraintsDamage.cpp\ 563 ./modules/ModelProcessorx/Damage/CreateParametersDamage.cpp\ 564 ./modules/ModelProcessorx/Damage/CreateLoadsDamage.cpp\ 565 ./solutionsequences/solutionsequence_damage_nonlinear.cpp 610 ./analyses/DamageEvolutionAnalysis.h\ 611 ./analyses/DamageEvolutionAnalysis.cpp\ 612 ./modules/ModelProcessorx/Damage/UpdateElementsDamage.cpp\ 613 ./modules/ModelProcessorx/Damage/CreateNodesDamage.cpp \ 614 ./modules/ModelProcessorx/Damage/CreateConstraintsDamage.cpp\ 615 ./modules/ModelProcessorx/Damage/CreateParametersDamage.cpp\ 616 ./modules/ModelProcessorx/Damage/CreateLoadsDamage.cpp\ 617 ./solutionsequences/solutionsequence_damage_nonlinear.cpp 566 618 567 619 #}}} -
issm/trunk-jpl/src/c/classes/Node.cpp
r16529 r16534 13 13 #include "shared/shared.h" 14 14 #include "modules/ModelProcessorx/ModelProcessorx.h" 15 #include "../analyses/analyses.h" 15 16 /*}}}*/ 16 17 … … 21 22 } 22 23 /*}}}*/ 23 /*FUNCTION Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_ type,int approximation) {{{*/24 Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_ type,int in_approximation){24 /*FUNCTION Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int approximation) {{{*/ 25 Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){ 25 26 26 27 /*Intermediary*/ 27 28 int k,l; 29 int *doftypes = NULL; 28 30 29 31 /*id: */ … … 31 33 this->sid = node_sid; 32 34 this->lid = node_lid; 33 this->analysis_ type = analysis_type;35 this->analysis_enum = analysis_enum; 34 36 35 37 /*Initialize coord_system: Identity matrix by default*/ … … 39 41 /*indexing:*/ 40 42 this->indexingupdate = true; 41 DistributeNumDofs(&this->indexing,analysis_type,in_approximation,iomodel->meshtype); //number of dofs per node 42 43 if(analysis_type==StressbalanceAnalysisEnum) 43 44 Analysis* analysis = EnumToAnalysis(analysis_enum); 45 int numdofs = analysis->DofsPerNode(&doftypes,iomodel->meshtype,in_approximation); 46 indexing.Init(numdofs,doftypes); 47 xDelete<int>(doftypes); 48 delete analysis; 49 50 if(analysis_enum==StressbalanceAnalysisEnum) 44 51 this->approximation=in_approximation; 45 52 else … … 48 55 /*Stressbalance Horiz*/ 49 56 #ifdef _HAVE_STRESSBALANCE_ 50 if(analysis_ type==StressbalanceAnalysisEnum){57 if(analysis_enum==StressbalanceAnalysisEnum){ 51 58 52 59 /*Coordinate system provided, convert to coord_system matrix*/ … … 85 92 /*2d solutions in 3d, we need to constrain all the nodes that are not on base*/ 86 93 if( 87 analysis_ type==FreeSurfaceBaseAnalysisEnum ||88 analysis_ type==MasstransportAnalysisEnum ||89 analysis_ type==MeltingAnalysisEnum ||90 analysis_ type==L2ProjectionBaseAnalysisEnum ||91 analysis_ type==BalancethicknessAnalysisEnum ||92 analysis_ type==HydrologyDCInefficientAnalysisEnum ||93 analysis_ type==DamageEvolutionAnalysisEnum ||94 analysis_ type==HydrologyDCEfficientAnalysisEnum94 analysis_enum==FreeSurfaceBaseAnalysisEnum || 95 analysis_enum==MasstransportAnalysisEnum || 96 analysis_enum==MeltingAnalysisEnum || 97 analysis_enum==L2ProjectionBaseAnalysisEnum || 98 analysis_enum==BalancethicknessAnalysisEnum || 99 analysis_enum==HydrologyDCInefficientAnalysisEnum || 100 analysis_enum==DamageEvolutionAnalysisEnum || 101 analysis_enum==HydrologyDCEfficientAnalysisEnum 95 102 ){ 96 103 if(iomodel->meshtype==Mesh3DEnum || iomodel->meshtype==Mesh2DverticalEnum){ … … 103 110 } 104 111 if( 105 analysis_ type==FreeSurfaceTopAnalysisEnum ||106 analysis_ type==L2ProjectionTopAnalysisEnum112 analysis_enum==FreeSurfaceTopAnalysisEnum || 113 analysis_enum==L2ProjectionTopAnalysisEnum 107 114 ){ 108 115 if(iomodel->meshtype==Mesh3DEnum || iomodel->meshtype==Mesh2DverticalEnum){ … … 130 137 _printf_(" id : " << id << "\n"); 131 138 _printf_(" sid: " << sid << "\n"); 132 _printf_(" analysis_ type: " << EnumToStringx(analysis_type) << "\n");139 _printf_(" analysis_enum: " << EnumToStringx(analysis_enum) << "\n"); 133 140 _printf_(" approximation: " << EnumToStringx(approximation) << "\n"); 134 141 _printf_(" indexingupdate: " << indexingupdate << "\n"); … … 143 150 _printf_(" id: " << id << "\n"); 144 151 _printf_(" sid: " << sid << "\n"); 145 _printf_(" analysis_ type: " << EnumToStringx(analysis_type) << "\n");152 _printf_(" analysis_enum: " << EnumToStringx(analysis_enum) << "\n"); 146 153 _printf_(" approximation: " << EnumToStringx(approximation) << "\n"); 147 154 _printf_(" indexingupdate: " << indexingupdate << "\n"); … … 367 374 #endif 368 375 /*FUNCTION Node::InAnalysis{{{*/ 369 bool Node::InAnalysis(int in_analysis_ type){370 if (in_analysis_ type==this->analysis_type) return true;376 bool Node::InAnalysis(int in_analysis_enum){ 377 if (in_analysis_enum==this->analysis_enum) return true; 371 378 else return false; 372 379 } -
issm/trunk-jpl/src/c/classes/Node.h
r16233 r16534 36 36 bool indexingupdate; 37 37 DofIndexing indexing; 38 int analysis_ type;38 int analysis_enum; 39 39 IssmDouble coord_system[3][3]; 40 40 41 41 /*Node constructors, destructors*/ 42 42 Node(); 43 Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_ type,int approximation_in);43 Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in); 44 44 ~Node(); 45 45 … … 59 59 void GetCoordinateSystem(IssmDouble* coord_system_out); 60 60 #endif 61 bool InAnalysis(int analysis_ type);61 bool InAnalysis(int analysis_enum); 62 62 int GetApproximation(); 63 63 int GetNumberOfDofs(int approximation_enum,int setenum); -
issm/trunk-jpl/src/c/cores/cores.h
r16518 r16534 3 3 */ 4 4 5 #ifndef _ ANALYSES_H_6 #define _ ANALYSES_H_5 #ifndef _CORES_H_ 6 #define _CORES_H_ 7 7 8 8 /*forward declarations: */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h
r16529 r16534 170 170 void UpdateCounters(IoModel* iomodel,Nodes** pnodes,Loads** ploads, Constraints** pconstraints); 171 171 172 /*Distribution of dofs: */173 void DistributeNumDofs(DofIndexing* index,int analysis_type,int node_type,int mesh_type);174 175 172 #endif -
issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh
r16367 r16534 104 104 END 105 105 #}}} 106 ##Build EnumToAnalysis.cpp {{{ 107 ##Header 108 #cat <<END > $ISSM_DIR/src/c/analyses/EnumToAnalysis.cpp 109 #/* 110 #* \file EnumToAnalysis.cpp 111 #* \brief: output class depending on enum 112 #* 113 #* WARNING: DO NOT MODIFY THIS FILE 114 #* this file has been automatically generated by Synchronize.sh 115 #* Please read README for more information 116 #*/ 117 # 118 ##include "./analyses.h" 119 ##include "../shared/shared.h" 120 # 121 #Analysis* EnumToAnalysis(int analysis_enum){ 122 # 123 # switch(analysis_enum){ 124 #END 125 ##core 126 #cat temp | grep [a-z]Analysis | \ 127 # grep -v DefaultAnalysis | grep -v FlaimAnalysis | grep -v SurfaceSlopeAnalysis | grep -v BedSlopeAnalysis | \ 128 # awk '{print "\t\t#ifdef _HAVE_"toupper(substr($1,1,length($1)-12))"_\n\t\t" "case " $1" : return new " substr($1,1,length($1)-4) "();\n\t\t#endif"}' \ 129 # >> $ISSM_DIR/src/c/analyses/EnumToAnalysis.cpp 130 # 131 ##Footer 132 #cat <<END >> $ISSM_DIR/src/c/analyses/EnumToAnalysis.cpp 133 #default : _error_("enum provided not supported ("<<EnumToStringx(analysis_enum)<<")"); 134 # } 135 #} 136 #END 137 ##}}} 106 138 #Build EnumDefinitions.py{{{ 107 139 cat <<END > $ISSM_DIR/src/m/enum/EnumDefinitions.py
Note:
See TracChangeset
for help on using the changeset viewer.