Skip to content
Snippets Groups Projects
Commit edeed07c authored by jcandrsn's avatar jcandrsn
Browse files

Corrected uq_coll_add_response_adjoint to use the updated indexing from...

Corrected uq_coll_add_response_adjoint to use the updated indexing from uq_coll_get_response_idx.  Removed old indexing from uq_coll_get_response_idx
parent f53fcf33
No related branches found
No related tags found
1 merge request!4Development
......@@ -52,32 +52,29 @@ if strcmp(uq_data.response_type, 'int')
'aidx', aidx, 'l0', l0, 'tl0', tl0);
elseif strcmp(uq_data.response_type, 'bv')
aT0idx = cell(uq_data.nsamples,1);
aTidx = cell(uq_data.nsamples,1);
ax0idx = cell(uq_data.nsamples,1);
ax1idx = cell(uq_data.nsamples,1);
apidx = cell(uq_data.nsamples,1);
% Collect adjoint variable indices so they can be passed
% to the function that calculates the adjoint of the PCE
% expansion.
for i=1:uq_data.nsamples
coll_id = coco_get_id(uq_data.sids{i}, 'coll');
[adata, aidx] = coco_get_adjt_data(prob, coll_id, 'data', 'axidx');
aT0idx{i} = aidx(adata.coll_opt.T0_idx);
aTidx{i} = aidx(adata.coll_opt.T_idx);
ax0idx{i} = aidx(adata.coll_opt.x0_idx);
ax1idx{i} = aidx(adata.coll_opt.x1_idx);
apidx{i} = aidx(adata.coll_opt.p_idx);
nsamples = uq_data.nsamples;
xdim = uq_data.xdim;
pdim = uq_data.pdim;
aidx = zeros(nsamples, 2 + 2*xdim + pdim);
x0end = 2+xdim;
x1end = 2+2*xdim;
pend = 2+2*xdim+pdim;
for i=1:nsamples
[axidx, fdata] = coco_get_adjt_data(prob, ...
coco_get_id(uq_data.sids{i}, 'coll'), 'axidx', 'data');
maps = fdata.coll_seg.maps;
aidx(i,1) = axidx(maps.T0_idx);
aidx(i,2) = axidx(maps.T_idx);
aidx(i,3:x0end) = axidx(maps.x0_idx);
aidx(i,x0end+1:x1end) = axidx(maps.x1_idx);
aidx(i,x1end+1:pend) = axidx(maps.p_idx);
end
aT0idx = cell2mat(aT0idx);
aTidx = cell2mat(aTidx);
ax0idx = cell2mat(ax0idx);
ax1idx = cell2mat(ax1idx);
apidx = cell2mat(apidx);
aidx = [aT0idx;aTidx;ax0idx;ax1idx;apidx];
aidx = aidx';
aidx = aidx(:);
prob = coco_add_adjt(prob, pce_id, 'aidx', ...
aidx, 'l0', l0, 'tl0', tl0);
......
......@@ -12,52 +12,28 @@ function data = uq_bv_coll_response_get_idx(prob, data)
nsamples = data.nsamples;
% T0_idx = cell(1, nsamples);
% T_idx = cell(1, nsamples);
% x0_idx = cell(1, nsamples);
% x1_idx = cell(1, nsamples);
% p_idx = cell(1, nsamples);
fdata = coco_get_func_data(prob, coco_get_id(data.sids{1}, 'coll'), ...
'data');
% cdim = fdata.xdim*nsamples;
% pdim = fdata.pdim*nsamples;
data.resp.uidx_test = zeros(nsamples, 2 + 2*fdata.xdim + fdata.pdim);
% data.resp.T0_idx = (1:nsamples)';
% data.resp.T_idx = nsamples + (1:nsamples)';
% data.resp.x0_idx = reshape(2*nsamples + (1:cdim)', fdata.xdim, []);
% data.resp.x1_idx = reshape(2*nsamples + cdim + (1:cdim)', fdata.xdim, []);
% data.resp.p_idx = reshape((2*nsamples + 2*cdim + (1:pdim)'), ...
% fdata.pdim, []);
data.resp.uidx = zeros(nsamples, 2 + 2*fdata.xdim + fdata.pdim);
for i=1:nsamples
[uidx, fdata] = coco_get_func_data(prob, ...
coco_get_id(data.sids{i}, 'coll'), 'uidx', 'data');
maps = fdata.coll_seg.maps;
data.resp.uidx_test(i,1) = uidx(maps.T0_idx);
data.resp.uidx_test(i,2) = uidx(maps.T_idx);
data.resp.uidx_test(i,3:2+fdata.xdim) = uidx(maps.x0_idx);
data.resp.uidx_test(i,2+fdata.xdim+1:2+2*fdata.xdim) = uidx(maps.x1_idx);
data.resp.uidx_test(i,2+2*fdata.xdim+1:2+2*fdata.xdim+fdata.pdim) = uidx(maps.p_idx);
% T0_idx{i} = uidx(maps.T0_idx);
% T_idx{i} = uidx(maps.T_idx);
% x0_idx{i} = uidx(maps.x0_idx);
% x1_idx{i} = uidx(maps.x1_idx);
% p_idx{i} = uidx(maps.p_idx);
data.resp.uidx(i,1) = uidx(maps.T0_idx);
data.resp.uidx(i,2) = uidx(maps.T_idx);
data.resp.uidx(i,3:2+fdata.xdim) = uidx(maps.x0_idx);
data.resp.uidx(i,2+fdata.xdim+1:2+2*fdata.xdim) = uidx(maps.x1_idx);
data.resp.uidx(i,2+2*fdata.xdim+1:2+2*fdata.xdim+fdata.pdim) = uidx(maps.p_idx);
end
data.resp.uidx_test = data.resp.uidx_test';
data.resp.uidx_test = data.resp.uidx_test(:);
% data.resp.uidx = vertcat(T0_idx{:}, T_idx{:}, x0_idx{:}, ...
% x1_idx{:}, p_idx{:});
data.resp.uidx = data.resp.uidx';
data.resp.uidx = data.resp.uidx(:);
data.resp.nargs = (nargin(data.rhan)==5);
%% Need to delete this line if new indexing isn't used:
data.resp.uidx = data.resp.uidx_test;
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment