57 fprintf(f,
" \t<kermor_model>\n ");
58 fprintf(f,
" \t\t<T>%17.17f</T>\n ",rm.T);
59 fprintf(f,
" \t\t<dt>%17.17f</dt>\n ",rm.dt);
63 if ~isempty(rm.ParamSamples)
64 mu = rm.ParamSamples(:,1);
66 dim = size(rm.System.x0.evaluate(mu),1);
67 fprintf(f,
" \t<dim>%d</dim>\n ",dim);
70 export.Util.saveRealMatrix(rm.V,
" V.bin ",folder);
71 export.Util.saveRealMatrix(rm.W,
" W.bin ",folder);
76 if isa(rm.ODESolver,
" solvers.IImplSolver ")
79 fprintf(f,
" \t<solvertype>%s</solvertype>\n ",stype);
80 fprintf(f,
" \t<outputtodof>TimoOutToDoF</outputtodof>\n ");
81 sources = [
" TimoOutToDoF "];
85 fprintf(f,
" \t<parameters>\n ");
86 p = rm.FullModel.System.Params;
90 fprintf(f,
" \t\t<param name='%s' min='%17.17f' max='%17.17f' label='%s'/>\n ",...
91 p(
k).Name,p(
k).MinVal,p(
k).MaxVal,p(
k).Name);
95 fprintf(f,
" \t</parameters>\n ");
100 fprintf(f,
" \t<corefun type='%s'>\n ",
class(cf));
101 if isa(cf,
" kernels.KernelExpansion ")
102 export.Util.saveRealMatrix(cf.Ma,
" Ma.bin ",folder);
103 export.Util.saveRealMatrix(cf.Centers.xi,
" xi.bin ",folder);
104 exportKernel(cf.Kernel,
" kernel.bin ",folder);
105 fprintf(f,
" \t\t<statekernel>%s</statekernel>\n ",
class(cf.Kernel));
106 if isa(cf,
" kernels.ParamTimeKernelExpansion ")
107 export.Util.saveRealVector(cf.Centers.ti,
" ti.bin ",folder);
108 exportKernel(cf.TimeKernel,
" timekernel.bin ",folder);
109 fprintf(f,
" \t\t<timekernel>%s</timekernel>\n ",
class(cf.TimeKernel));
111 export.Util.saveRealMatrix(cf.Centers.mui,
" mui.bin ",folder);
112 exportKernel(cf.ParamKernel,
" paramkernel.bin ",folder);
113 fprintf(f,
" \t\t<paramkernel>%s</paramkernel>\n ",
class(cf.ParamKernel));
115 elseif isa(cf,
" dscomponents.LinearCoreFun ")
116 export.Util.saveRealMatrix(cf.A,
" A.bin ",folder);
117 elseif isa(cf,
" dscomponents.AffLinCoreFun ")
118 if isempty(cf.CoeffClass)
119 error(
" AffLinCoreFuns must have the CoeffClass value set for export. ");
122 fprintf(f,
" \t\t<coeffclass>%s</coeffclass>\n ",cf.CoeffClass);
123 sources[end+1] = cf.CoeffClass;
124 export.Util.saveRealMatrix(cf.AffParamMatrix.Matrices,
" A.bin ",folder);
126 error(
" System function type unknown for export. ");
128 fprintf(f,
" \t</corefun>\n ");
131 if rm.System.InputCount > 0 && ~isempty(s.B)
132 fprintf(f,
" \t<inputconv type='%s'>\n ",
class(s.B));
133 if isa(s.B,
" dscomponents.LinearInputConv ")
134 export.Util.saveRealMatrix(s.B.B,
" B.bin ",folder);
135 elseif isa(s.B,
" dscomponents.AffLinInputConv ")
136 if isempty(s.B.CoeffClass)
137 error(
" AffLinInputConv instances must have the CoeffClass value set for export. ");
140 fprintf(f,
" \t\t<coeffclass>%s</coeffclass>\n ",s.B.CoeffClass);
141 sources[end+1] = s.B.CoeffClass;
142 export.Util.saveRealMatrix(s.B.Matrices,
" B.bin ",folder);
144 fprintf(f,
" \t</inputconv>\n ");
145 sources[end+1] =
" Inputs ";
150 fprintf(f,
" \t<massmatrix type='%s'>\n ",
class(s.M));
151 if isa(s.M,
" dscomponents.ConstMassMatrix ")
152 export.Util.saveRealMatrix(s.M.M,
" M.bin ",folder);
153 elseif isa(s.M,
" dscomponents.AffLinMassMatrix ")
154 if isempty(s.M.CoeffClass)
155 error(
" AffLinMassMatrix instances must have the CoeffClass value set for export. ");
158 fprintf(f,
" \t\t<coeffclass>%s</coeffclass>\n ",s.M.CoeffClass);
159 sources[end+1] = s.M.CoeffClass;
160 export.Util.saveRealMatrix(s.M.Matrices,
" M.bin ",folder);
162 fprintf(f,
" \t</massmatrix>\n ");
167 if isa(s.C,
" dscomponents.LinearOutputConv ")
172 export.Util.saveRealMatrix(C,
" C.bin ",folder);
173 elseif isa(s.C,
" dscomponents.AffLinOutputConv ")
174 error(
" Not yet implemented. ");
176 fprintf(f,
" \t<outputconvtype>%s</outputconvtype>\n ",
class(s.C));
180 if isa(s.x0,
" dscomponents.ConstInitialValue ")
181 export.Util.saveRealVector(s.x0.x0,
" x0.bin ",folder);
182 elseif isa(s.B,
" dscomponents.AffineInitialValue ")
183 error(
" Not yet implemented. ");
185 fprintf(f,
" \t<initialvaluetype>%s</initialvaluetype>\n ",
class(s.x0));
186 fprintf(f,
" \t</kermor_model>\n ");
191 sourcefiles = sources;
193 function exportKernel(
k, file, folder)
194 if isa(
k,
" kernels.GaussKernel ")
195 export.Util.saveRealVector(
k.Gamma,file,folder);
196 elseif isa(
k,
" kernels.LinearKernel ")
The base class for any KerMor detailed model.
function [ sourcebase , sourcefiles ] = typeSpecificExport(f,models.BaseFullModel model, folder)
char ModelType
The model type according to the jarmos.ModelType enum.
JKerMorExport: Export class for JaRMoS model generation from KerMor models.
JaRMoSExport: Export base class for JaRMoS Models.
char JKerMorSourceDirectory
The directory of JKerMor sources.
A MatLab character array.