Changeset 17483


Ignore:
Timestamp:
03/19/14 19:15:02 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added tetras method in model that splits mesh3dprism into mesh3dtetra

Location:
issm/trunk-jpl/src/m/classes
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/model.m

    r17435 r17483  
    11031103                end
    11041104                %}}}
     1105                function md = tetras(md,varargin) % {{{
     1106                        %TETRAS - split 3d prismatic mesh into 3 tetrahedrons
     1107                        %
     1108                        %   Usage:
     1109                        %      md=tetra(md)
     1110
     1111                        if ~isa(md.mesh,'mesh3dprisms')
     1112                                error('mesh is not a 3d prismatic mesh');
     1113                        end
     1114
     1115                        %Initialize tetra mesh
     1116                        md.mesh=mesh3dtetras(md.mesh);
     1117
     1118                        %Split in 3 tetras
     1119                        subelement1 = [1 2 3 5];
     1120                        subelement2 = [4 6 5 1];
     1121                        subelement3 = [5 6 3 1];
     1122                        elements=[md.mesh.elements(:,subelement1);md.mesh.elements(:,subelement2);md.mesh.elements(:,subelement3)];
     1123                        pos_elements = repmat([1:md.mesh.numberofelements]',3,1);
     1124
     1125                        md.mesh.elements=elements;
     1126                        md.mesh.numberofelements=size(elements,1);
     1127
     1128                        %p and q (same deal, except for element that are on the bedrock: )
     1129                        md.friction.p=md.friction.p(pos_elements);
     1130                        md.friction.q=md.friction.q(pos_elements);
     1131
     1132                        %elementstype
     1133                        if ~isnan(md.flowequation.element_equation)
     1134                                oldelements_type=md.flowequation.element_equation;
     1135                                md.flowequation.element_equation=zeros(number_el3d,1);
     1136                                md.flowequation.element_equation=md.flowequation.element_equation(pos_elements);
     1137                        end
     1138
     1139                        %connectivity
     1140                        md.mesh.elementconnectivity=NaN;
     1141
     1142                        %materials
     1143                        md.materials.rheology_n=md.materials.rheology_n(pos_elements);
     1144
     1145                        %increase connectivity if less than 25:
     1146                        if md.mesh.average_vertex_connectivity<=25,
     1147                                md.mesh.average_vertex_connectivity=100;
     1148                        end
     1149                end % }}}
    11051150                function disp(obj) % {{{
    11061151                        disp(sprintf('%19s: %-22s -- %s','mesh'            ,['[1x1 ' class(obj.mesh) ']'],'mesh properties'));
Note: See TracChangeset for help on using the changeset viewer.