Changeset 5414


Ignore:
Timestamp:
08/19/10 11:22:37 (15 years ago)
Author:
Mathieu Morlighem
Message:

Fixed misfit 3

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

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/modules/MaxAbsVxx/MaxAbsVxx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MaxAbsVxx( double* pmaxabsvx, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MaxAbsVyx/MaxAbsVyx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MaxAbsVyx( double* pmaxabsvy, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MaxAbsVzx/MaxAbsVzx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MaxAbsVzx( double* pmaxabsvz, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MaxVelx/MaxVelx.cpp

    r4974 r5414  
    99#include "../../toolkits/toolkits.h"
    1010#include "../../EnumDefinitions/EnumDefinitions.h"
    11 #include "../SurfaceAreax/SurfaceAreax.h"
    1211
    1312void MaxVelx( double* pmaxvel, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MaxVxx/MaxVxx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MaxVxx( double* pmaxvx, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MaxVyx/MaxVyx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MaxVyx( double* pmaxvy, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MaxVzx/MaxVzx.cpp

    r4974 r5414  
    99#include "../../toolkits/toolkits.h"
    1010#include "../../EnumDefinitions/EnumDefinitions.h"
    11 #include "../SurfaceAreax/SurfaceAreax.h"
    1211
    1312void MaxVzx( double* pmaxvz, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MinVelx/MinVelx.cpp

    r4974 r5414  
    99#include "../../toolkits/toolkits.h"
    1010#include "../../EnumDefinitions/EnumDefinitions.h"
    11 #include "../SurfaceAreax/SurfaceAreax.h"
    1211
    1312void MinVelx( double* pminvel, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MinVxx/MinVxx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MinVxx( double* pminvx, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MinVyx/MinVyx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MinVyx( double* pminvy, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/MinVzx/MinVzx.cpp

    r4974 r5414  
    88#include "../../toolkits/toolkits.h"
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    10 #include "../SurfaceAreax/SurfaceAreax.h"
    1110
    1211void MinVzx( double* pminvz, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units){
  • issm/trunk/src/c/modules/SurfaceAreax/SurfaceAreax.cpp

    r4573 r5414  
    99#include "../../toolkits/toolkits.h"
    1010#include "../../EnumDefinitions/EnumDefinitions.h"
     11#include "../InputUpdateFromConstantx/InputUpdateFromConstantx.h"
    1112
    1213void SurfaceAreax( double* pS, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    3132        S=S_sum;
    3233
     34        /*add surface area to element inputs:*/
     35        InputUpdateFromConstantx(elements,nodes,vertices,loads,materials,parameters,S,SurfaceAreaEnum);
     36
    3337        /*Assign output pointers: */
    34         *pS=S;
     38        if(pS) *pS=S;
    3539}
  • issm/trunk/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.cpp

    r5284 r5414  
    1414
    1515        /*Intermediary*/
    16         double S;
    1716        int i;
    1817        Element* element=NULL;
     
    2221        double J_sum;
    2322
    24         /*Compute surface area: */
    25         SurfaceAreax(&S,elements,nodes,vertices, loads,materials,parameters);
    26 
    27         /*add surface area to elements :*/
    28         for(i=0;i<elements->Size();i++){
    29                 Element* element=(Element*)elements->GetObjectByOffset(i);
    30                 element->InputUpdateFromVector(&S,SurfaceAreaEnum,ConstantEnum);
    31         }
     23        /*Compute surface area and add to elements inputs */
     24        SurfaceAreax(NULL,elements,nodes,vertices, loads,materials,parameters);
    3225
    3326        /*Compute Misfit: */
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r5387 r5414  
    61366136                                name==AccumulationRateEnum ||
    61376137                                name==GeothermalFluxEnum ||
     6138                                name==SurfaceAreaEnum||
    61386139                                name==PressureEnum ||
    61396140                                name==VxEnum ||
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r5387 r5414  
    71847184                                name==MeltingRateEnum ||
    71857185                                name==AccumulationRateEnum ||
     7186                                name==SurfaceAreaEnum||
    71867187                                name==ControlParameterEnum ||
    71877188                                name==VxEnum ||
  • issm/trunk/src/c/solutions/adjointbalancedthickness_core.cpp

    r5378 r5414  
    2424        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2525
    26         /*set analysis type to compute velocity: */
     26        /*compute thickness */
    2727        _printf_("%s\n","      computing thickness");
    2828        femmodel->SetCurrentConfiguration(BalancedthicknessAnalysisEnum);
    2929        solver_linear(femmodel);
    3030
    31         /*Update inputs using adjoint solution, and same type of setup as diagnostic solution: */
     31        /*Call SurfaceAreax, because some it might be needed by PVector*/
     32        SurfaceAreax(NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     33
     34        /*compute adjoint*/
    3235        _printf_("%s\n","      computing adjoint");
    3336        femmodel->SetCurrentConfiguration(BalancedthicknessAnalysisEnum,AdjointBalancedthicknessAnalysisEnum);
    3437        solver_adjoint_linear(femmodel);
    3538       
     39        /*Save results*/
    3640        if(solution_type==AdjointSolutionEnum && !control_analysis){
    3741                if(verbose)_printf_("saving results:\n");
  • issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp

    r5378 r5414  
    2727        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2828
    29         /*set analysis type to compute velocity: */
     29        /*Compute velocities*/
    3030        _printf_("%s\n","      computing velocities");
    3131        if(isstokes)femmodel->SetCurrentConfiguration(DiagnosticStokesAnalysisEnum);
     
    3333        solver_diagnostic_nonlinear(femmodel,conserve_loads);
    3434
    35         /*Update inputs using adjoint solution, and same type of setup as diagnostic solution: */
     35        /*Call SurfaceAreax, because some it might be needed by PVector*/
     36        SurfaceAreax(NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     37
     38        /*Compute adjoint*/
    3639        _printf_("%s\n","      computing adjoint");
    3740        if(isstokes)femmodel->SetCurrentConfiguration(DiagnosticStokesAnalysisEnum,AdjointStokesAnalysisEnum);
     
    3942        solver_adjoint_linear(femmodel);
    4043       
     44        /*Save results*/
    4145        if(solution_type==AdjointSolutionEnum && !control_analysis){
    4246                if(verbose)_printf_("saving results:\n");
Note: See TracChangeset for help on using the changeset viewer.