Changeset 1787


Ignore:
Timestamp:
08/20/09 14:24:12 (16 years ago)
Author:
Eric.Larour
Message:

New thermalstatic serial solution! yeeha!
+ new tres routine replaces transfervel (to transfer results)

Location:
issm/trunk/src
Files:
3 added
1 deleted
10 edited

Legend:

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

    r1784 r1787  
    3333int SteadyAnalysisEnum(void){           return          231; }
    3434int TransientAnalysisEnum(void){        return          232; }
     35int ThermalstaticAnalysisEnum(void){    return          233; }
    3536//slope
    3637int SlopeComputeAnalysisEnum(void){     return          240; }
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r1784 r1787  
    3434int SteadyAnalysisEnum(void);
    3535int TransientAnalysisEnum(void);
     36int ThermalstaticAnalysisEnum(void);
    3637//slope
    3738int SlopeComputeAnalysisEnum(void);
  • issm/trunk/src/c/Makefile.am

    r1784 r1787  
    604604bin_PROGRAMS =
    605605else
    606 dnl bin_PROGRAMS = diagnostic.exe  control.exe thermal.exe prognostic.exe transient.exe
     606bin_PROGRAMS = diagnostic.exe  control.exe thermal.exe prognostic.exe transient.exe
    607607endif
    608608
  • issm/trunk/src/c/PenaltyConstraintsx/PenaltyConstraintsx.cpp

    r1784 r1787  
    4040                /*Do nothing, no constraints management!:*/
    4141                num_unstable_constraints=0;
     42                converged=1;
    4243        }
    4344
  • issm/trunk/src/m/classes/public/ismodelselfconsistent.m

    r1781 r1787  
    217217                bool=0; return;
    218218        end
     219end
     220
     221%THERMALSTATIC
     222if md.analysis_type==ThermalstaticAnalysisEnum,
     223        %PRESSURE
     224        if isnans(md.pressure),
     225                disp(['For a thermalstatic computation, the model must have an initial pressure, even lithostatic will do.']);
     226                bool=0;return;
     227        end
     228
     229        %eps:
     230        if isnan(md.eps_rel),
     231                disp(['For a thermalstatic computation, eps_rel (relative convergence criterion) must be defined!']);
     232                bool=0;return;
     233        end
     234
     235        %dim:
     236        if strcmpi(md.type,'2d'),
     237                disp(['For a thermalstatic computation, model needs to be 3d']);
     238                bool=0;return;
     239        end
     240
     241
     242
    219243end
    220244
  • issm/trunk/src/m/classes/public/process_solve_options.m

    r1651 r1787  
    7373
    7474%check solution type is supported
    75 if ~ismemberi(analysis_type,{'control','diagnostic','prognostic','thermal','parameters','mesh2grid','transient'}),
     75if ~ismemberi(analysis_type,{'control','diagnostic','prognostic','thermal','thermalstatic','parameters','mesh2grid','transient'}),
    7676        error(['process_solve_options error message: analysis_type ' analysis_type ' not supported yet!']);
    7777else
  • issm/trunk/src/m/classes/public/solve.m

    r1651 r1787  
    7676        md=parameters(md);
    7777
     78elseif md.analysis_type==ThermalStaticAnalysisEnum,
     79        md=thermalstatic(md);
     80
    7881else
    7982        error('solution type not supported for this model configuration.');
  • issm/trunk/src/m/classes/public/tres.m

    r1785 r1787  
    1313        md.vel=md.results.diagnostic.vel;
    1414        md.pressure=md.results.diagnostic.pressure;
    15 else if strcmpi(string,'thermalstatic'),
     15elseif strcmpi(string,'thermalstatic'),
    1616        md.vx=md.results.thermalstatic.vx;
    1717        md.vy=md.results.thermalstatic.vy;
     
    2020        md.temperature=md.results.thermalstatic.temperature;
    2121        md.melting=md.results.thermalstatic.melting;
    22 else if strcmpi(string,'thermal'),
     22elseif strcmpi(string,'thermal'),
    2323        md.temperature=md.results.thermalstatic.temperature;
    2424        md.melting=md.results.thermalstatic.melting;
  • issm/trunk/src/m/enum/AnalysisTypeAsEnum.m

    r1714 r1787  
    6565end
    6666
     67if enum==ThermalstaticAnalysisEnum(),
     68        string='thermalstatic';
     69end
     70
    6771if enum==SlopeComputeAnalysisEnum(),
    6872        string='slopecompute';
  • issm/trunk/src/m/solutions/cielo/processresults.m

    r1647 r1787  
    1515
    1616%recover models first
    17 if (analysis_type==DiagnosticAnalysisEnum | analysis_type==TransientAnalysisEnum),
     17if (analysis_type==DiagnosticAnalysisEnum | analysis_type==TransientAnalysisEnum | analysis_type==ThermalstaticAnalysisEnum()),
    1818        m_dh=models.dh;
    1919        m_ds=models.ds;
     
    3535        isstokes=m_dh.parameters.isstokes;
    3636end
    37 if (analysis_type==ThermalAnalysisEnum() | analysis_type==TransientAnalysisEnum()),
     37if (analysis_type==ThermalAnalysisEnum() | analysis_type==TransientAnalysisEnum() | analysis_type==ThermalstaticAnalysisEnum()),
    3838        m_m=models.m;
    3939end
Note: See TracChangeset for help on using the changeset viewer.