Changeset 9739
- Timestamp:
- 09/09/11 16:04:14 (14 years ago)
- Location:
- issm/trunk/src/m
- Files:
-
- 1 added
- 39 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/classes/autodiff.m
r9725 r9739 35 35 end 36 36 end % }}} 37 function checkconsistency(obj,md) % {{{ 38 39 end % }}} 37 40 end 38 41 end -
issm/trunk/src/m/classes/balancethickness.m
r9680 r9739 39 39 40 40 end % }}} 41 function checkconsistency(obj,md) % {{{ 42 43 end % }}} 41 44 end 42 45 end -
issm/trunk/src/m/classes/basalforcings.m
r9612 r9739 35 35 end 36 36 end % }}} 37 function checkconsistency(obj,md) % {{{ 38 39 end % }}} 37 40 end 38 41 end -
issm/trunk/src/m/classes/diagnostic.m
r9679 r9739 77 77 78 78 end % }}} 79 function checkconsistency(obj,md) % {{{ 80 fields={'icefront'}; 81 if (md.mesh.dimension==2), 82 checksize(md,'diagnostic',fields,[NaN 4]); 83 elseif md.mesh.dimension==3, 84 checksize(md,'diagnostic',fields,[NaN 6]); 85 end 86 fields={'icefront(:,end)'}; 87 checkvalues(md,'diagnostic',fields,[0 1 2]); 88 end % }}} 79 89 function disp(obj) % {{{ 80 90 -
issm/trunk/src/m/classes/flaim.m
r9732 r9739 43 43 function checkconsistency(obj,md) % {{{ 44 44 45 if ~exist(obj.flaim.tracks,'file') 45 if md.private.solution~=FlaimSolutionEnum, 46 return; 47 end 48 49 if ~exist(obj.tracks,'file') 46 50 checkmessage(['flaim.tracks file ''' md.flaim.tracks ''' does not exist.']); 47 51 end 48 52 % probably going to need some checks on flaim.flightreqs here 49 if (numel(obj. flaim.criterion)~=md.mesh.numberofvertices) & (numel(md.flaim.criterion)~=md.mesh.numberofelements),53 if (numel(obj.criterion)~=md.mesh.numberofvertices) & (numel(obj.criterion)~=md.mesh.numberofelements), 50 54 checkmessage(['flaim.criterion vector must have number of nodes (' ... 51 55 int2str(md.mesh.numberofvertices) ') or elements (' int2str(md.mesh.numberofelements)... -
issm/trunk/src/m/classes/flowequation.m
r9661 r9739 41 41 42 42 end % }}} 43 function checkconsistency(obj,md) % {{{ 44 45 end % }}} 43 46 end 44 47 end -
issm/trunk/src/m/classes/friction.m
r9610 r9739 36 36 37 37 end % }}} 38 function checkconsistency(obj,md) % {{{ 39 40 end % }}} 38 41 function disp(obj) % {{{ 39 42 -
issm/trunk/src/m/classes/geometry.m
r9691 r9739 38 38 39 39 end % }}} 40 function checkconsistency(obj,md) % {{{ 41 42 end % }}} 40 43 end 41 44 end -
issm/trunk/src/m/classes/groundingline.m
r9629 r9739 42 42 43 43 end % }}} 44 function checkconsistency(obj,md) % {{{ 45 46 end % }}} 44 47 end 45 48 end -
issm/trunk/src/m/classes/hydrology.m
r9646 r9739 49 49 obj.stabilization=1; 50 50 end % }}} 51 function checkconsistency(obj,md) % {{{ 52 53 end % }}} 51 54 end 52 55 end -
issm/trunk/src/m/classes/initialization.m
r9685 r9739 41 41 42 42 end % }}} 43 function checkconsistency(obj,md) % {{{ 44 45 end % }}} 43 46 end 44 47 end -
issm/trunk/src/m/classes/inversion.m
r9681 r9739 86 86 87 87 end % }}} 88 function checkconsistency(obj,md) % {{{ 89 90 end % }}} 88 91 function disp(obj) % {{{ 89 92 fielddisplay(obj,'iscontrol','is inversion activated?'); -
issm/trunk/src/m/classes/mask.m
r9675 r9739 39 39 40 40 end % }}} 41 function checkconsistency(obj,md) % {{{ 42 43 end % }}} 41 44 function disp(obj) % {{{ 42 45 -
issm/trunk/src/m/classes/materials.m
r9636 r9739 75 75 obj.rheology_law='Paterson'; 76 76 end % }}} 77 function checkconsistency(obj,md) % {{{ 78 79 end % }}} 77 80 function disp(obj) % {{{ 78 81 disp(sprintf(' Materials:\n')); -
issm/trunk/src/m/classes/mesh.m
r9735 r9739 83 83 checkgreaterstrict(md,'mesh',fields,0); 84 84 85 fields={'elements'}; 86 if(md.mesh.dimension==2), 87 checksize(md,'mesh',fields,[md.mesh.numberofelements 3]); 88 else 89 checksize(md,'mesh',fields,[md.mesh.numberofelements 6]); 90 end 91 if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:))))); 92 checkmessage('orphan nodes have been found. Check the mesh'); 93 end 94 95 %Solution specific checks 96 switch(md.private.solution), 97 case PrognosticSolutionEnum, 98 if md.prognostic.stabilization==3, 99 if md.mesh.dimension~=2, checkmessage('Discontinuous Galerkin only supported for 2d meshes'); end 100 fields={'edges'}; 101 checksize(md,'mesh',fields,[NaN 4]); 102 fields={'edges(:,1:3)'}; 103 checknan(md,'mesh',fields); 104 checkgreaterstrict(md,'mesh',fields,0); 105 end 106 case BalancethicknessSolutionEnum, 107 if md.balancethickness.stabilization==3, 108 if md.mesh.dimension~=2, checkmessage('Discontinuous Galerkin only supported for 2d meshes'); end 109 fields={'edges'}; 110 checksize(md,'mesh',fields,[NaN 4]); 111 fields={'edges(:,1:3)'}; 112 checknan(md,'mesh',fields); 113 checkgreaterstrict(md,'mesh',fields,0); 114 end 115 case TransientSolutionEnum, 116 if md.transient.isprognostic & md.prognostic.stabilization==3, 117 if md.mesh.dimension~=2, checkmessage('Discontinuous Galerkin only supported for 2d meshes'); end 118 fields={'edges'}; 119 checksize(md,'mesh',fields,[NaN 4]); 120 fields={'edges(:,1:3)'}; 121 checknan(md,'mesh',fields); 122 checkgreaterstrict(md,'mesh',fields,0); 123 end 124 end 85 125 end % }}} 86 126 function disp(obj) % {{{ -
issm/trunk/src/m/classes/private.m
r9614 r9739 36 36 37 37 end % }}} 38 function checkconsistency(obj,md) % {{{ 39 40 end % }}} 38 41 end 39 42 end -
issm/trunk/src/m/classes/prognostic.m
r9680 r9739 46 46 obj.hydrostatic_adjustment='Absolute'; 47 47 end % }}} 48 function checkconsistency(obj,md) % {{{ 49 50 end % }}} 48 51 function disp(obj) % {{{ 49 52 disp(sprintf(' Prognostic solution parameters:')); -
issm/trunk/src/m/classes/qmu.m
r9668 r9739 47 47 obj.(fieldname)=obj.(fieldname).default; 48 48 end 49 end % }}} 50 function checkconsistency(obj,md) % {{{ 51 49 52 end % }}} 50 53 function disp(obj) % {{{ -
issm/trunk/src/m/classes/rifts.m
r9619 r9739 35 35 end 36 36 end % }}} 37 function checkconsistency(obj,md) % {{{ 38 39 end % }}} 37 40 end 38 41 end -
issm/trunk/src/m/classes/settings.m
r9717 r9739 52 52 md.waitonlock=Inf; 53 53 end % }}} 54 function checkconsistency(obj,md) % {{{ 55 56 end % }}} 54 57 end 55 58 end -
issm/trunk/src/m/classes/solver.m
r9564 r9739 40 40 end 41 41 %}}} 42 function checkconsistency(obj,md) % {{{ 43 44 end % }}} 42 45 function PetscFile(solver,filename) % {{{ 43 46 %PETSCFILE - build petsc file -
issm/trunk/src/m/classes/steadystate.m
r9677 r9739 41 41 obj.reltol=0.01; 42 42 end % }}} 43 function checkconsistency(obj,md) % {{{ 44 45 end % }}} 43 46 end 44 47 end -
issm/trunk/src/m/classes/surfaceforcings.m
r9609 r9739 35 35 end 36 36 end % }}} 37 function checkconsistency(obj,md) % {{{ 38 39 end % }}} 37 40 end 38 41 end -
issm/trunk/src/m/classes/thermal.m
r9680 r9739 50 50 obj.penalty_factor=3; 51 51 end % }}} 52 function checkconsistency(obj,md) % {{{ 53 54 end % }}} 52 55 function disp(obj) % {{{ 53 56 disp(sprintf(' Thermal solution parameters:')); -
issm/trunk/src/m/classes/timestepping.m
r9628 r9739 46 46 obj.cfl_coefficient=.5; 47 47 end % }}} 48 function checkconsistency(obj,md) % {{{ 49 50 end % }}} 48 51 end 49 52 end -
issm/trunk/src/m/classes/transient.m
r9678 r9739 52 52 53 53 end % }}} 54 function checkconsistency(obj,md) % {{{ 55 56 end % }}} 54 57 end 55 58 end -
issm/trunk/src/m/classes/verbose.m
r9681 r9739 99 99 end 100 100 %}}} 101 function checkconsistency(obj,md) % {{{ 102 103 end % }}} 101 104 function disp(verbose) % {{{1 102 105 -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9732 r9739 8 8 modelconsistency(true); 9 9 10 %General consistency checks 11 md.mesh.checkconsistency(md); 12 13 %Solution dependent checks 14 %FLAIM {{{1 15 switch(md.private.solution), 16 case FlaimSolutionEnum, md.flaim.checkconsistency(md); 10 %Go through al model field check that it is a class and call checkconsistency 11 fields=properties(md); 12 for i=1:length(fields), 13 field=fields{i}; 14 if ismember(field,{'cluster' 'results' 'debug' 'radaroverlay'}), 15 continue; 16 end 17 if ~isobject(md.(field)) 18 checkmessage(['field ''' char(field) ''' is not an object']); 19 else 20 md.(field).checkconsistency(md); 21 end 17 22 end 18 %}}}19 23 20 24 %error message if mode is not consistent -
issm/trunk/src/m/utils/consistency/checkforcing.m
r9730 r9739 11 11 if size(field,1)==md.mesh.numberofvertices, 12 12 if ~size(field,2)==1, 13 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have only one column as there are md.mesh.numberofvertices lines']);13 checkmessage(['field ''' obj '.' fields{i} ''' should have only one column as there are md.mesh.numberofvertices lines']); 14 14 end 15 15 elseif size(field,1)==md.mesh.numberofvertices+1 16 16 if any(field(end,:)~=sort(field(end,:))), 17 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' columns should be chronological']);17 checkmessage(['field ''' obj '.' fields{i} ''' columns should be chronological']); 18 18 end 19 19 if any(field(end,1:end-1)==field(end,2:end)), 20 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' columns must not contain duplicate timesteps']);20 checkmessage(['field ''' obj '.' fields{i} ''' columns must not contain duplicate timesteps']); 21 21 end 22 22 else 23 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines']);23 checkmessage(['field ''' obj '.' fields{i} ''' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines']); 24 24 end 25 25 end -
issm/trunk/src/m/utils/consistency/checkgreater.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if any(field<lowerbound), 12 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have values above ' num2str(lowerbound)]);12 checkmessage(['field ''' obj '.' fields{i} ''' should have values above ' num2str(lowerbound)]); 13 13 end 14 14 end -
issm/trunk/src/m/utils/consistency/checkgreaterstrict.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if any(field<=lowerbound), 12 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have values stricly above ' num2str(lowerbound)]);12 checkmessage(['field ''' obj '.' fields{i} ''' should have values stricly above ' num2str(lowerbound)]); 13 13 end 14 14 end -
issm/trunk/src/m/utils/consistency/checklength.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if length(field)~=fieldlength, 12 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' length should be ' num2str(fieldlength)]);12 checkmessage(['field ''' obj '.' fields{i} ''' length should be ' num2str(fieldlength)]); 13 13 end 14 14 end -
issm/trunk/src/m/utils/consistency/checkless.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if any(field>upperbound), 12 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have values below ' num2str(upperbound)]);12 checkmessage(['field ''' obj '.' fields{i} ''' should have values below ' num2str(upperbound)]); 13 13 end 14 14 end -
issm/trunk/src/m/utils/consistency/checklessstrict.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if any(field>=upperbound), 12 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have values stricly below ' num2str(upperbound)]);12 checkmessage(['field ''' obj '.' fields{i} ''' should have values stricly below ' num2str(upperbound)]); 13 13 end 14 14 end -
issm/trunk/src/m/utils/consistency/checkmessage.m
r9730 r9739 7 7 % checkmessage(string); 8 8 9 disp( string);9 disp(['model not consistent: ' string]); 10 10 modelconsistency(false); -
issm/trunk/src/m/utils/consistency/checknan.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if any(isnan(field)), 12 checkmessage([' model not consistent:NaN values found in field ''' obj '.' fields{i}'''']);12 checkmessage(['NaN values found in field ''' obj '.' fields{i}'''']); 13 13 end 14 14 end -
issm/trunk/src/m/utils/consistency/checkreal.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if any(~isreal(field)) 12 checkmessage([' model not consistent:complex values found in field ''' obj '.' fields{i}'''']);12 checkmessage(['complex values found in field ''' obj '.' fields{i}'''']); 13 13 end 14 14 end -
issm/trunk/src/m/utils/consistency/checksize.m
r9730 r9739 11 11 if isnan(fieldsize(1)), 12 12 if (size(field,2)~=fieldsize(2)), 13 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have ' num2str(fieldsize(2)) ' columns']);13 checkmessage(['field ''' obj '.' fields{i} ''' should have ' num2str(fieldsize(2)) ' columns']); 14 14 end 15 15 elseif isnan(fieldsize(2)), 16 16 if (size(field,1)~=fieldsize(1)), 17 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have ' num2str(fieldsize(1)) ' rows']);17 checkmessage(['field ''' obj '.' fields{i} ''' should have ' num2str(fieldsize(1)) ' rows']); 18 18 end 19 19 else 20 20 if ((size(field)~=fieldsize(1)) | (size(field,2)~=fieldsize(2))) 21 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' size should be ' num2str(fieldsize(1)) ' x ' num2str(fieldsize(2))]);21 checkmessage(['field ''' obj '.' fields{i} ''' size should be ' num2str(fieldsize(1)) ' x ' num2str(fieldsize(2))]); 22 22 end 23 23 end -
issm/trunk/src/m/utils/consistency/checkvalues.m
r9730 r9739 10 10 eval(['field=md.' obj '.' fields{i} ';']); 11 11 if any(~ismember(field,values)), 12 checkmessage([' model not consistent:field ''' obj '.' fields{i} ''' should have values in ' num2str(values)]);12 checkmessage(['field ''' obj '.' fields{i} ''' should have values in ' num2str(values)]); 13 13 end 14 14 end
Note:
See TracChangeset
for help on using the changeset viewer.