Changeset 17831


Ignore:
Timestamp:
04/23/14 16:12:24 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added balancethickness2 solution for debugging with Jerome

Location:
issm/trunk-jpl/src
Files:
7 added
21 edited

Legend:

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

    r17546 r17831  
    430430                                        ./solutionsequences/solutionsequence_stokescoupling_nonlinear.cpp\
    431431                                        ./cores/balancethickness_core.cpp \
     432                                        ./cores/balancethickness2_core.cpp \
    432433                                        ./cores/balancevelocity_core.cpp \
    433434                                        ./cores/dummy_core.cpp\
     
    521522if BALANCETHICKNESS
    522523issm_sources += ./analyses/BalancethicknessAnalysis.cpp
     524endif
     525if BALANCETHICKNESS2
     526issm_sources += ./analyses/Balancethickness2Analysis.cpp
    523527endif
    524528if BALANCETHICKNESSSOFT
     
    866870
    867871libISSMCore_la_SOURCES  = $(issm_sources)
    868 libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(FORTRANLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
     872libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
    869873libISSMCore_la_FFLAGS = $(AM_FFLAGS)
    870874endif
     
    913917
    914918#External packages
    915 LDADD += $(PETSCLIB) $(TAOLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB)  $(MATHLIB) $(FORTRANLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
     919LDADD += $(PETSCLIB) $(TAOLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB)  $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
    916920
    917921if FORTRAN
    918 LDADD += $(FLIBS)
     922LDADD += $(FLIBS) $(FORTRANLIB)
    919923endif
    920924
  • issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp

    r17494 r17831  
    2222                #ifdef _HAVE_BALANCETHICKNESS_
    2323                case BalancethicknessAnalysisEnum : return new BalancethicknessAnalysis();
     24                #endif
     25                #ifdef _HAVE_BALANCETHICKNESS2_
     26                case Balancethickness2AnalysisEnum : return new Balancethickness2Analysis();
    2427                #endif
    2528                #ifdef _HAVE_BALANCETHICKNESSSOFT_
  • issm/trunk-jpl/src/c/analyses/analyses.h

    r17494 r17831  
    1111#include "./AdjointHorizAnalysis.h"
    1212#include "./BalancethicknessAnalysis.h"
     13#include "./Balancethickness2Analysis.h"
    1314#include "./BalancethicknessSoftAnalysis.h"
    1415#include "./BalancevelocityAnalysis.h"
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r17827 r17831  
    243243                virtual bool   IsZeroLevelset(int levelset_enum)=0;
    244244                virtual bool   IsIcefront(void)=0;
     245                virtual bool   IsFaceOnBoundary(void)=0;
    245246                virtual void   ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum)=0;
    246247                virtual void   GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum)=0;
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r17827 r17831  
    9595                bool   IsZeroLevelset(int levelset_enum);
    9696                bool   IsIcefront(void);
     97                bool   IsFaceOnBoundary(void){_error_("not implemented yet");};
    9798                void   ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
    9899                void   GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r17827 r17831  
    126126                bool        IsZeroLevelset(int levelset_enum){_error_("not implemented");};
    127127                bool               IsIcefront(void);
     128                bool   IsFaceOnBoundary(void){_error_("not implemented yet");};
    128129                void        ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented");};
    129130                void               GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.h

    r17827 r17831  
    131131                bool        IsZeroLevelset(int levelset_enum){_error_("not implemented");};
    132132                bool               IsIcefront(void);
     133                bool   IsFaceOnBoundary(void){_error_("not implemented yet");};
    133134                void        ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
    134135                void               GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r17827 r17831  
    22572257        return isicefront;
    22582258}/*}}}*/
     2259bool Tria::IsFaceOnBoundary(void){/*{{{*/
     2260
     2261        IssmDouble values[NUMVERTICES];
     2262        IssmDouble sum;
     2263
     2264        /*Retrieve all inputs and parameters*/
     2265        GetInputListOnVertices(&values[0],MeshVertexonboundaryEnum);
     2266        sum = values[0]+values[1]+values[2];
     2267
     2268        _assert_(sum==0. || sum==1. || sum==2.);
     2269
     2270        if(sum==3.)  _error_("Two edges on boundary not supported yet...");
     2271
     2272        if(sum>1.){
     2273                return true;
     2274        }
     2275        else{
     2276                return false;
     2277        }
     2278}/*}}}*/
    22592279/*FUNCTION Tria::AverageOntoPartition {{{*/
    22602280void  Tria::AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r17827 r17831  
    112112                bool        IsZeroLevelset(int levelset_enum);
    113113                bool            IsIcefront(void);
     114                bool            IsFaceOnBoundary(void);
    114115
    115116                void       AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
  • issm/trunk-jpl/src/c/classes/Materials/Matice.cpp

    r17759 r17831  
    3131        this->helement=NULL;
    3232        this->element=NULL;
    33         this->isdamaged=NULL;
    3433        return;
    3534}
  • issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp

    r17741 r17831  
    7878                        break;
    7979
     80                case Balancethickness2SolutionEnum:
     81                        numanalyses=1;
     82                        analyses=xNew<int>(numanalyses);
     83                        analyses[0]=Balancethickness2AnalysisEnum;
     84                        break;
     85
    8086                case BalancethicknessSoftSolutionEnum:
    8187                        numanalyses=1;
  • issm/trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp

    r17236 r17831  
    3434                case BalancethicknessSolutionEnum:
    3535                        solutioncore=&balancethickness_core;
     36                        break;
     37                case Balancethickness2SolutionEnum:
     38                        solutioncore=&balancethickness2_core;
    3639                        break;
    3740                case BalancethicknessSoftSolutionEnum:
  • issm/trunk-jpl/src/c/cores/cores.h

    r17511 r17831  
    3434void extrudefromtop_core(FemModel* femmodel);
    3535void balancethickness_core(FemModel* femmodel);
     36void balancethickness2_core(FemModel* femmodel);
    3637void balancevelocity_core(FemModel* femmodel);
    3738void slopecompute_core(FemModel* femmodel);
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r17797 r17831  
    212212        MeshVertexonbaseEnum,
    213213        MeshVertexonsurfaceEnum,
     214        MeshVertexonboundaryEnum,
    214215        MeshXEnum,
    215216        MeshYEnum,
     
    324325        BalancethicknessAnalysisEnum,
    325326        BalancethicknessSolutionEnum,
     327        Balancethickness2AnalysisEnum,
     328        Balancethickness2SolutionEnum,
    326329        BalancethicknessSoftAnalysisEnum,
    327330        BalancethicknessSoftSolutionEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r17797 r17831  
    220220                case MeshVertexonbaseEnum : return "MeshVertexonbase";
    221221                case MeshVertexonsurfaceEnum : return "MeshVertexonsurface";
     222                case MeshVertexonboundaryEnum : return "MeshVertexonboundary";
    222223                case MeshXEnum : return "MeshX";
    223224                case MeshYEnum : return "MeshY";
     
    325326                case BalancethicknessAnalysisEnum : return "BalancethicknessAnalysis";
    326327                case BalancethicknessSolutionEnum : return "BalancethicknessSolution";
     328                case Balancethickness2AnalysisEnum : return "Balancethickness2Analysis";
     329                case Balancethickness2SolutionEnum : return "Balancethickness2Solution";
    327330                case BalancethicknessSoftAnalysisEnum : return "BalancethicknessSoftAnalysis";
    328331                case BalancethicknessSoftSolutionEnum : return "BalancethicknessSoftSolution";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r17797 r17831  
    223223              else if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
    224224              else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
     225              else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum;
    225226              else if (strcmp(name,"MeshX")==0) return MeshXEnum;
    226227              else if (strcmp(name,"MeshY")==0) return MeshYEnum;
     
    259260              else if (strcmp(name,"SettingsLowmem")==0) return SettingsLowmemEnum;
    260261              else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum;
    261               else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
     265              if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum;
     266              else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
    266267              else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
    267268              else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum;
     
    331332              else if (strcmp(name,"BalancethicknessAnalysis")==0) return BalancethicknessAnalysisEnum;
    332333              else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum;
     334              else if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum;
     335              else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum;
    333336              else if (strcmp(name,"BalancethicknessSoftAnalysis")==0) return BalancethicknessSoftAnalysisEnum;
    334337              else if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum;
     
    380383              else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum;
    381384              else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum;
    382               else if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum;
    383               else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
    384               else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
     388              if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum;
     389              else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
     390              else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum;
     391              else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
    389392              else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
    390393              else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
     
    503506              else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
    504507              else if (strcmp(name,"Temperature")==0) return TemperatureEnum;
    505               else if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum;
    506               else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
    507               else if (strcmp(name,"Vel")==0) return VelEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"Velocity")==0) return VelocityEnum;
     511              if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum;
     512              else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
     513              else if (strcmp(name,"Vel")==0) return VelEnum;
     514              else if (strcmp(name,"Velocity")==0) return VelocityEnum;
    512515              else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
    513516              else if (strcmp(name,"Vx")==0) return VxEnum;
     
    626629              else if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
    627630              else if (strcmp(name,"None")==0) return NoneEnum;
    628               else if (strcmp(name,"AgressiveMigration")==0) return AgressiveMigrationEnum;
    629               else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
    630               else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
     634              if (strcmp(name,"AgressiveMigration")==0) return AgressiveMigrationEnum;
     635              else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
     636              else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
     637              else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
    635638              else if (strcmp(name,"Contact")==0) return ContactEnum;
    636639              else if (strcmp(name,"MaskGroundediceLevelset")==0) return MaskGroundediceLevelsetEnum;
  • issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh

    r17776 r17831  
    3535END
    3636#core
    37 cat temp | grep [a-zA-Z]Analysis | \
     37cat temp | grep [a-zA-Z0-9]Analysis | \
    3838        grep -v DefaultAnalysis | grep -v FlaimAnalysis | grep -v SurfaceSlopeAnalysis | grep -v BedSlopeAnalysis | \
    3939        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"}' \
     
    6363END
    6464#core
    65 cat temp | grep [a-zA-Z]Analysis | \
     65cat temp | grep [a-zA-Z0-9]Analysis | \
    6666        grep -v DefaultAnalysis | grep -v FlaimAnalysis | grep -v SurfaceSlopeAnalysis | grep -v BedSlopeAnalysis | \
    6767        sed -e "s/AnalysisEnum//g" | \
  • issm/trunk-jpl/src/m/classes/mesh2d.m

    r17720 r17831  
    190190                        WriteData(fid,'object',obj,'class','mesh','fieldname','numberofvertices','format','Integer');
    191191                        WriteData(fid,'object',obj,'class','mesh','fieldname','average_vertex_connectivity','format','Integer');
     192                        WriteData(fid,'object',obj,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1);
    192193                end % }}}
    193194                function t = domaintype(obj) % {{{
  • issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m

    r16821 r17831  
    6161                analyses=[BalancethicknessAnalysisEnum()];
    6262
     63        case Balancethickness2SolutionEnum(),
     64                analyses=[Balancethickness2AnalysisEnum()];
     65
    6366        case BalancethicknessSoftSolutionEnum(),
    6467                analyses=[BalancethicknessAnalysisEnum()];
  • issm/trunk-jpl/src/m/contrib/dassflow/importgmsh.m

    r17727 r17831  
    9797                                error('not supported');
    9898                        end
     99                case 15, %point
     100                        continue;
    99101                otherwise,
    100102                        error(['Type ' num2str(ty) ' not supported']);
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r17763 r17831  
    212212def MeshVertexonbaseEnum(): return StringToEnum("MeshVertexonbase")[0]
    213213def MeshVertexonsurfaceEnum(): return StringToEnum("MeshVertexonsurface")[0]
     214def MeshVertexonboundaryEnum(): return StringToEnum("MeshVertexonboundary")[0]
    214215def MeshXEnum(): return StringToEnum("MeshX")[0]
    215216def MeshYEnum(): return StringToEnum("MeshY")[0]
     
    317318def BalancethicknessAnalysisEnum(): return StringToEnum("BalancethicknessAnalysis")[0]
    318319def BalancethicknessSolutionEnum(): return StringToEnum("BalancethicknessSolution")[0]
     320def Balancethickness2AnalysisEnum(): return StringToEnum("Balancethickness2Analysis")[0]
     321def Balancethickness2SolutionEnum(): return StringToEnum("Balancethickness2Solution")[0]
    319322def BalancethicknessSoftAnalysisEnum(): return StringToEnum("BalancethicknessSoftAnalysis")[0]
    320323def BalancethicknessSoftSolutionEnum(): return StringToEnum("BalancethicknessSoftSolution")[0]
     
    520523def HydrologyWaterVxEnum(): return StringToEnum("HydrologyWaterVx")[0]
    521524def HydrologyWaterVyEnum(): return StringToEnum("HydrologyWaterVy")[0]
     525def SigmaNNEnum(): return StringToEnum("SigmaNN")[0]
    522526def StressTensorEnum(): return StringToEnum("StressTensor")[0]
    523527def StressTensorxxEnum(): return StringToEnum("StressTensorxx")[0]
Note: See TracChangeset for help on using the changeset viewer.