function mttCheckBondgraphDeclarations(model) for i = 1:length(model.sympar) mttAssert(~ismember(model.sympar{i},model.numpar),... ['Same name (',model.sympar{i},') used for "numpar" and "abg[...]" parameters']) ; mttAssert(~ismember(model.sympar{i},model.input),... ['Same name (',model.sympar{i},') used for "input" and "abg[...]" parameters']) ; end for i = 1:length(model.numpar) mttAssert(~ismember(model.numpar{i},model.input),... ['Same name (',model.numpar{i},') used for "numpar" and "input" parameters']) ; mttAssert(~ismember(model.numpar{i},model.sympar),... ['Same name (',model.numpar{i},') used for "numpar" and "abg[...]" parameters']) ; end for i = 1:length(model.input) mttAssert(~ismember(model.input{i},model.sympar),... ['Same name (',model.input{i},') used for "input" and "abg[...]" parameters']) ; mttAssert(~ismember(model.input{i},model.numpar),... ['Same name (',model.input{i},') used for "numpar" and "input" parameters']) ; end all_parameters = [] ; if ~isempty(model.sympar) all_parameters = model.sympar ; end if ~isempty(model.numpar) if isempty(all_parameters) all_parameters = model.numpar ; else all_parameters = [all_parameters, model.numpar] ; end end if ~isempty(model.input) if isempty(all_parameters) all_parameters = model.input ; else all_parameters = [all_parameters, model.input] ; end end object_names = mttGetFieldNames(model,'obj') ; if ~isempty(all_parameters) for i = 1:length(object_names) object_name = object_names{i} ; object = getfield(model,'obj',object_name) ; for j = 1:length(object.parameter) object_parameter = object.parameter{j} ; if ~isnumeric(object_parameter) mttAssert(ismember(object_parameter,all_parameters),... ['Object parameter "',object.parameter{j},'" not previously declared']) ; end end end for j = 1:length(all_parameters) current_parameter = all_parameters{j} ; other_parameters = all_parameters ; other_parameters(j) = [] ; mttAssert(~ismember(current_parameter,other_parameters),... ['Repeated parameter/input name "',current_parameter,'"']) ; end end counter = 0 ; all_instance_parameters = [] ; for i = 1:length(object_names) object_name = object_names{i} ; object = getfield(model,'obj',object_name) ; for j = 1:length(object.parameter) object_parameter = object.parameter{j} ; if ~isnumeric(object_parameter) counter = counter + 1 ; all_instance_parameters{counter} = object_parameter ; end end end for k = 1:length(all_parameters) parameter = all_parameters{k} ; if isempty(all_instance_parameters) mttAssert(0,['Declared parameter/input "',parameter,'" not used']) ; else mttAssert(ismember(parameter,all_instance_parameters),... ['Declared parameter/input "',parameter,'" not used']) ; end end