Está en la página 1de 3

nodeCoordinates elementNodes

= model.mesh.nodeCoordinates; = model.mesh.elementNodes; = [0,0,1,1]*1e-2; = 10;

domainCoordinates domainNumber

domainCorners

= [...

domainCoordinates(1) - domainCoordinates(3)/2 ; domainCoordinates(2) - domainCoordinates(4)/2 ; domainCoordinates(1) + domainCoordinates(3)/2 ; domainCoordinates(2) + domainCoordinates(4)/2 ];

domainCondition = [... domainCoordinates(1) - domainCoordinates(3)*.99/2 ; domainCoordinates(2) - domainCoordinates(4)*.99/2 ; domainCoordinates(1) + domainCoordinates(3)*.99/2 ; domainCoordinates(2) + domainCoordinates(4)*.99/2 ];

selectedNodes = find( ... (nodeCoordinates(:,1) > domainCondition(1)) & ... (nodeCoordinates(:,1) < domainCondition(3)) & ... (nodeCoordinates(:,2) > domainCondition(2)) & ... (nodeCoordinates(:,2) < domainCondition(4)) );

listElements = []; for n = 1 : length(selectedNodes) [selectedElements,a] = find(selectedNodes(n) == elementNodes); listElements = [listElements; selectedElements]; end listElementUnique = unique(listElements);

listElementIntern = []; for e = 1:length(listElementUnique) nombre = length(find(listElementsU(e)==listElements));

if nombre == 4 listElementIntern = [listElementIntern; listElementUnique(e)]; end end

if length(listElementIntern)<1

listNodes = []; for e = 1: length(listElements) listNodes = [listNodes, elementNodes(listElements(e),1:4)]; listNodes = unique(listNodes); elementNodes(listElements(e),5) = domainNumber; end

nodeCoordinates(listNodes,1) = ... min(domainCorners(3),... max(domainCorners(1),... nodeCoordinates(listNodes,1))); nodeCoordinates(listNodes,2) = ... min(domainCorners(4),... max(domainCorners(2),... nodeCoordinates(listNodes,2)));

else

oldCoordinates = nodeCoordinates(selectedNodes,:); for n = 1 : length(selectedNodes)

if min(oldCoordinates(:,1)) == ... nodeCoordinates(selectedNodes(n),1) nodeCoordinates(selectedNodes(n),1) = domainCorners(1); end if max(oldCoordinates(:,1)) == ... nodeCoordinates(selectedNodes(n),1)

nodeCoordinates(selectedNodes(n),1) = domainCorners(3); end

if min(oldCoordinates(:,2)) == ... nodeCoordinates(selectedNodes(n),2) nodeCoordinates(selectedNodes(n),2) = domainCorners(2); end if max(oldCoordinates(:,2)) == ... nodeCoordinates(selectedNodes(n),2) nodeCoordinates(selectedNodes(n),2) = domainCorners(4); end end

end

figure for e = 1:length(elementNodes) mesh.Vertices mesh.Faces = nodeCoordinates(elementNodes(e,1:4),:); = [1 2 3 4];

mesh.FaceColor = [0.9,0.9,0.9]; patch(mesh) end

mdl.nodeCoordinates = nodeCoordinates; mdl.elementNodes = elementNodes;

También podría gustarte