⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compute_sd_array.m

📁 利用电磁场的源激发方法来计算光子晶体波导例如光子晶体光纤
💻 M
字号:
function sdArray = compute_sd_array(curveArray)
% sdArray = COMPUTE_SD_ARRAY(curveArray)
% Analyzes curveArray to find all sub-domains. 

treeArray = [];
for iCurve = 1:length(curveArray)
    nodeNew = pointer;
    nodeNew.curve = curveArray(iCurve);
    nodeNew.children = [];
    
    % check if current curve is inside curves already added
    nTrees = length(treeArray);
    bAdded = 0;
    for iTree = 1:nTrees
        nodeParent = findParent(treeArray(iTree), nodeNew);
        if nodeParent ~= 0
            nodeParent.children = [nodeParent.children nodeNew];
            bAdded = 1;
            break
        end
    end
    if bAdded
        continue
    else
        treeArray = [treeArray nodeNew];
    end
    
    % check if other roots are inside the added curve
    iTree = 1;
    while iTree < length(treeArray)
        nodeCurr = treeArray(iTree);
        if is_first_in_second(nodeCurr.curve, nodeNew.curve)
            nodeNew.children = [nodeNew.children nodeCurr];
            treeArray = remove(treeArray, iTree);
        else
            iTree = iTree + 1;
        end
    end
end

% add the 'Hankel' subdomain at the root
nodeHankel = pointer;
nodeHankel.children = treeArray;
nodeHankel.curve = [];

sdArray = tree2sdArray(nodeHankel);
free_tree(nodeHankel);

    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -