Changeset 3752
- Timestamp:
- 05/17/10 07:16:51 (15 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 2 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/parallel/diagnostic_core.cpp
r3751 r3752 91 91 //for qmu analysis, be sure the velocity input we are starting from is the one in the parameters: */ 92 92 if(qmu_analysis){ 93 model->FindParamByAnalysisAndSub(&vx,&dummy,VxEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputsFromVector(vx,VxEnum,VertexEnum);94 model->FindParamByAnalysisAndSub(&vy,&dummy,VyEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputsFromVector(vy,VyEnum,VertexEnum);95 model->FindParamByAnalysisAndSub(&vz,&dummy,VzEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputsFromVector(vz,VzEnum,VertexEnum);93 fem_dh->FindParam(&vx,&dummy,VxEnum); model->UpdateInputsFromVector(vx,VxEnum,VertexEnum); 94 fem_dh->FindParam(&vy,&dummy,VyEnum); model->UpdateInputsFromVector(vy,VyEnum,VertexEnum); 95 fem_dh->FindParam(&vz,&dummy,VzEnum); model->UpdateInputsFromVector(vz,VzEnum,VertexEnum); 96 96 } 97 97 -
issm/trunk/src/m/solutions/jpl/diagnostic.m
r3715 r3752 29 29 md.dof=modelsize(models); 30 30 31 %initialize inputs32 inputs=inputlist;33 inputs=add(inputs,'velocity',models.dh.parameters.u_g,'doublevec',3,models.dh.parameters.numberofnodes);34 if md.control_analysis,35 inputs=add(inputs,'velocity_obs',models.dh.parameters.u_g_obs,'doublevec',2,models.dh.parameters.numberofnodes);36 inputs=add(inputs,'weights',models.dh.parameters.weights,'doublevec',1,models.dh.parameters.numberofnodes);37 end38 39 31 %compute solution 40 32 if ~models.dh.parameters.qmu_analysis, -
issm/trunk/src/m/solutions/jpl/diagnostic_core.m
r3529 r3752 1 function results=diagnostic_core(model s,inputs);1 function results=diagnostic_core(model); 2 2 %DIAGNOSTIC_CORE - compute the core velocity field 3 3 % 4 4 % Usage: 5 % results=diagnostic_core(models ,inputs);5 % results=diagnostic_core(models); 6 6 % 7 7 … … 20 20 isstokes=m_ds.parameters.isstokes; 21 21 numrifts=m_dhu.parameters.numrifts; 22 qmu_analysis=m_dh.parameters.qmu_analysis; 22 23 23 debug=1; 24 25 %for qmu analysis, be sure the velocity input we are starting from is the one in the parameters: 26 if qmu_analysis, 27 UpdateInputsFromVector(models,m_dh.vx,VxEnum,VertexEnum); 28 UpdateInputsFromVector(models,m_dh.vy,VyEnum,VertexEnum); 29 UpdateInputsFromVector(models,m_dh.vz,VzEnum,VertexEnum); 30 end 31 32 %Compute slopes: 33 [surfaceslopex,surfaceslopey]=slope_core(m_sl,SurfaceAnalysisEnum); 34 [bedslopex,bedslopey]=slope_core(m_sl,BedAnalysisEnum); 35 36 %Update: 37 UpdateInputsFromVector(models,surfaceslopex,SurfaceSlopexEnum,VertexEnum); 38 UpdateInputsFromVector(models,surfaceslopey,SurfaceSlopeyEnum,VertexEnum); 39 UpdateInputsFromVector(models,bedslopex,BedSlopexEnum,VertexEnum); 40 UpdateInputsFromVector(models,bedslopey,BedSlopeyEnum,VertexEnum); 41 42 24 43 25 44 if ishutter, 26 45 27 displaystring(verbose,'\n%s',['computing surface slope (x and y derivatives)...']);28 slopex=diagnostic_core_linear(m_sl,inputs,SlopecomputeAnalysisEnum(),SurfaceXAnalysisEnum());29 slopey=diagnostic_core_linear(m_sl,inputs,SlopecomputeAnalysisEnum(),SurfaceYAnalysisEnum());30 31 if dim==3,32 displaystring(verbose,'\n%s',['extruding slopes in 3d...']);33 slopex=FieldExtrude(m_sl.elements,m_sl.nodes,m_sl.vertices,m_sl.loads,m_sl.materials,m_sl.parameters,slopex,'slopex',0);34 slopey=FieldExtrude(m_sl.elements,m_sl.nodes,m_sl.vertices,m_sl.loads,m_sl.materials,m_sl.parameters,slopey,'slopey',0);35 end36 37 displaystring(verbose,'\n%s',['computing slopes...']);38 inputs=add(inputs,'surfaceslopex',slopex,'doublevec',m_sl.parameters.numberofdofspernode,m_sl.parameters.numberofnodes);39 inputs=add(inputs,'surfaceslopey',slopey,'doublevec',m_sl.parameters.numberofdofspernode,m_sl.parameters.numberofnodes);40 41 46 displaystring(verbose,'\n%s',['computing hutter velocities...']); 42 u_g=diagnostic_core_linear(m_dhu, inputs,DiagnosticAnalysisEnum(),HutterAnalysisEnum());47 u_g=diagnostic_core_linear(m_dhu,DiagnosticAnalysisEnum(),HutterAnalysisEnum()); 43 48 44 49 displaystring(verbose,'\n%s',['computing pressure according to MacAyeal...']); 45 p_g=ComputePressure(m_dhu.elements,m_dhu.nodes,m_dhu.vertices,m_dhu.loads,m_dhu.materials,m_dhu.parameters, inputs,DiagnosticAnalysisEnum(),HutterAnalysisEnum());50 p_g=ComputePressure(m_dhu.elements,m_dhu.nodes,m_dhu.vertices,m_dhu.loads,m_dhu.materials,m_dhu.parameters,DiagnosticAnalysisEnum(),HutterAnalysisEnum()); 46 51 47 52 displaystring(verbose,'\n%s',['update boundary conditions for macyeal pattyn using hutter results...']); … … 56 61 57 62 displaystring(verbose,'\n%s',['computing horizontal velocities...']); 58 [u_g m_dh.loads]=diagnostic_core_nonlinear(m_dh, inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum());63 [u_g m_dh.loads]=diagnostic_core_nonlinear(m_dh,DiagnosticAnalysisEnum(),HorizAnalysisEnum()); 59 64 60 displaystring(verbose,'\n%s',['computing pressure according to MacAyeal...']); 61 p_g=ComputePressure(m_dh.elements,m_dh.nodes,m_dh.vertices,m_dh.loads,m_dh.materials,m_dh.parameters,inputs,DiagnosticAnalysisEnum(),HorizAnalysisEnum()); 65 if dim==2, 66 displaystring(verbose,'\n%s',['computing pressure according to MacAyeal...']); 67 p_g=ComputePressure(m_dh.elements,m_dh.nodes,m_dh.vertices,m_dh.loads,m_dh.materials,m_dh.parameters,DiagnosticAnalysisEnum(),HorizAnalysisEnum()); 68 end 62 69 end 63 70
Note:
See TracChangeset
for help on using the changeset viewer.