Changeset 5252


Ignore:
Timestamp:
08/13/10 15:25:20 (15 years ago)
Author:
Mathieu Morlighem
Message:

prepared CM balancedthickness (To be continued)

Location:
issm/trunk/src/m/solutions
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/solutions/adjoint_core.m

    r4933 r5252  
    11function femmodel=adjoint_core(femmodel),
    22%ADJOINT_CORE - compute inverse method adjoint state
     3%
     4%   Usage:
     5%      femmodel=adjoint_core(femmodel)
    36
    47        %recover parameters common to all solutions
     
    1013
    1114        %set analysis type to compute velocity:
    12         displaystring('\n%s',['      computing velocities']);
    13         if(isstokes),
    14                 femmodel=SetCurrentConfiguration(femmodel,DiagnosticStokesAnalysisEnum);
    15         else
    16                 femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum);
     15        if (solution_type==DiagnosticSolutionEnum | solution_type==SteadystateSolutionEnum)
     16                displaystring('\n%s',['      computing velocities']);
     17                if(isstokes), femmodel=SetCurrentConfiguration(femmodel,DiagnosticStokesAnalysisEnum);
     18                else femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum); end
     19                femmodel=solver_diagnostic_nonlinear(femmodel,conserve_loads);
     20        elseif (solution_type==BalancedthicknessSolutionEnum)
     21                femmodel=SetCurrentConfiguration(femmodel,BalancedthicknessAnalysisEnum);
     22                femmodel=solver_linear(femmodel);
     23        else
     24                error('solution not implemented yet');
    1725        end
    18         femmodel=solver_diagnostic_nonlinear(femmodel,conserve_loads);
    1926
    2027        displaystring('\n%s',['      computing adjoint']);
    21         if(isstokes),
    22                 femmodel=SetCurrentConfiguration(femmodel,DiagnosticStokesAnalysisEnum,AdjointStokesAnalysisEnum);
    23         else
    24                 femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum,AdjointHorizAnalysisEnum);
     28        if (solution_type==DiagnosticSolutionEnum | solution_type==SteadystateSolutionEnum)
     29                if(isstokes), femmodel=SetCurrentConfiguration(femmodel,DiagnosticStokesAnalysisEnum,AdjointStokesAnalysisEnum);
     30                else femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum,AdjointHorizAnalysisEnum); end
     31        elseif (solution_type==BalancedthicknessSolutionEnum),
     32                femmodel=SetCurrentConfiguration(femmodel,BalancedthicknessAnalysisEnum,AdjointBalancedthicknessAnalysisEnum);
    2533        end
    2634        femmodel=solver_adjoint_linear(femmodel);
  • issm/trunk/src/m/solutions/objectivefunctionC.m

    r5041 r5252  
    77fit=femmodel.parameters.Fit(n);
    88control_type=femmodel.parameters.ControlType;
    9 control_steady=femmodel.parameters.ControlSteady;
    109analysis_type=femmodel.parameters.AnalysisType;
     10solution_type=femmodel.parameters.SolutionType;
    1111isstokes=femmodel.parameters.IsStokes;
    1212
    1313%set current configuration
    14 if isstokes,
    15         femmodel=SetCurrentConfiguration(femmodel,DiagnosticStokesAnalysisEnum);
     14if (solution_type==DiagnosticSolutionEnum | solution_type==SteadystateSolutionEnum)
     15        if isstokes, femmodel=SetCurrentConfiguration(femmodel,DiagnosticStokesAnalysisEnum);
     16        else femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum); end
     17elseif (solution_type==BalancedthicknessSolutionEnum)
     18        femmodel=SetCurrentConfiguration(femmodel,BalancedthicknessAnalysisEnum);
    1619else
    17         femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum);
     20        error('solution not implemented yet');
    1821end
    1922
     
    2225
    2326%Run diagnostic with updated inputs:
    24 if(control_steady==0),
     27if (solution_type==DiagnosticSolutionEnum)
    2528        femmodel=solver_diagnostic_nonlinear(femmodel,conserve_loads);  %true means we conserve loads at each diagnostic run
     29elseif (solution_type==SteadystateSolutionEnum)
     30        femmodel=diagnostic_core(femmodel);  %We need a 3D velocity!! (vz is required for the next thermal run)
     31elseif (solution_type==BalancedthicknessSolutionEnum)
     32        femmodel=solver_linear(femmodel);
    2633else
    27         femmodel=diagnostic_core(femmodel);  %We need a 3D velocity!! (vz is required for the next thermal run)
     34        error('solution not implemented yet');
    2835end
    2936
Note: See TracChangeset for help on using the changeset viewer.