Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F104853267
COSOlver_create_input.m
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Mar 12, 21:59
Size
4 KB
Mime Type
text/x-Algol68
Expires
Fri, Mar 14, 21:59 (2 d)
Engine
blob
Format
Raw Data
Handle
24865468
Attached To
rCOSOLVER COSOlver
COSOlver_create_input.m
View Options
function
resfile
=
COSOlver_create_input
(
input
)
%
COSOlver_create_input
creates
a
COSOlver
input
file
fort
.90
from
matlab
structure
input
%
%
Note
:
-
The
field
of
input
should
match
the
NAMELIST
of
fort
.
f90
read
by
COSolver
%
%
%
%
Author
:
Baptiste
J
.
Frei
,
SPC
,
December
2019
fprintf
(
'
Inputs
:
\
n
'
);
fprintf
(
'
------------
\
n
'
);
%
struct2table
(
input
)
%
Output
Format
formatToPrintFloat
=
'
%
.10f
'
;
%
Open
/
create
file
fort
.
f90
fileID
=
fopen
(
'
fort
.90
','
w
+
'
);
%
...
discard
existing
contents
fprintf
(
fileID
,
'
!
COSOlver
Input
File
created
with
create_input
routine
\
n
'
);
%
Write
BASIC
if
isfield
(
input
,
'
BASIC
'
)
fprintf
(
fileID
,
'
&
BASIC
\
n
'
);
%
Get
fieldnames
of
BASIC
BASIC_fields
=
fieldnames
(
input
.
BASIC
);
for
ibasic
=
1
:
length
(
BASIC_fields
)
if
ischar
(
input
.
BASIC
.(
BASIC_fields
{
ibasic
}))
ToPrint
=
[
BASIC_fields
{
ibasic
},
'='
,
input
.
BASIC
.(
BASIC_fields
{
ibasic
})];
else
ToPrint
=
[
BASIC_fields
{
ibasic
},
'='
,...
num2str
(
input
.
BASIC
.(
BASIC_fields
{
ibasic
}))];
end
fprintf
(
fileID
,[
ToPrint
,
'\n'
]);
end
fprintf
(
fileID
,
'
/
\
n
'
);
else
error
(
'
BASIC
is
not
a
field
...
!
Cannot
create
input
file
..
'
)
end
%
fprintf
(
fileID
,
'\n'
);
%
%
Write
MODEL_PAR
if
isfield
(
input
,
'
MODEL_PAR
'
)
fprintf
(
fileID
,
'
&
MODEL_PAR
\
n
'
);
%
Get
fieldnames
of
MODEL_PAR
MODEL_PAR_fields
=
fieldnames
(
input
.
MODEL_PAR
);
for
imod
=
1
:
length
(
MODEL_PAR_fields
)
if
ischar
(
input
.
MODEL_PAR
.(
MODEL_PAR_fields
{
imod
}))
ToPrint
=
[
MODEL_PAR_fields
{
imod
},
'='
,
input
.
MODEL_PAR
.(
MODEL_PAR_fields
{
imod
})];
else
ToPrint
=
[
MODEL_PAR_fields
{
imod
},
'='
,...
num2str
(
input
.
MODEL_PAR
.(
MODEL_PAR_fields
{
imod
}))];
end
fprintf
(
fileID
,[
ToPrint
,
'\n'
]);
end
fprintf
(
fileID
,
'
/
\
n
'
);
else
error
(
'
MODEL_PAR
is
not
a
field
...
!
Cannot
create
input
file
..
'
)
end
%
fprintf
(
fileID
,
'\n'
);
%
%
Write
OPERATOR_MODEL
if
isfield
(
input
,
'
OPERATOR_MODEL
'
)
fprintf
(
fileID
,
'
&
OPERATOR_MODEL
\
n
'
);
%
Get
fieldnames
of
OPERATOR_MODEL
OPERATOR_MODEL_fields
=
fieldnames
(
input
.
OPERATOR_MODEL
);
for
iop
=
1
:
length
(
OPERATOR_MODEL_fields
)
if
ischar
(
input
.
OPERATOR_MODEL
.(
OPERATOR_MODEL_fields
{
iop
}))
ToPrint
=
[
OPERATOR_MODEL_fields
{
iop
},
'='
,
input
.
OPERATOR_MODEL
.(
OPERATOR_MODEL_fields
{
iop
})];
else
ToPrint
=
[
OPERATOR_MODEL_fields
{
iop
},
'='
,...
num2str
(
input
.
OPERATOR_MODEL
.(
OPERATOR_MODEL_fields
{
iop
}))];
end
fprintf
(
fileID
,[
ToPrint
,
'\n'
]);
end
fprintf
(
fileID
,
'
/
\
n
'
);
else
error
(
'
OPERATOR
MODEL
is
not
a
field
...
!
Cannot
create
input
file
..
'
)
end
%
fclose
(
fileID
);
fprintf
([
'
Input
file
fort
.
f90
created
succesfully
in
'
,
pwd
,
'
\
n
'
]);
OPERATOR_MODEL
=
input
.
OPERATOR_MODEL
;
BASIC
=
input
.
BASIC
;
MODEL_PAR
=
input
.
MODEL_PAR
;
%
Constructs
suffix
for
resfile
SUFFIX_resfileCei
=
[
'
Coll
'
,...
'
_GKE_
'
,
num2str
(
OPERATOR_MODEL
.
GKE
),...
'
_GKI_
'
,
num2str
(
OPERATOR_MODEL
.
GKI
),...
'
_ETEST_
'
,
num2str
(
OPERATOR_MODEL
.
ETEST
),...
'
_EBACK_
'
,
num2str
(
OPERATOR_MODEL
.
EBACK
),...
'
_Pmaxe_
'
,
num2str
(
BASIC
.
Pmaxe
),...
'
_Jmaxe_
'
,
num2str
(
BASIC
.
Jmaxe
),...
'
_Pmaxi_
'
,
num2str
(
BASIC
.
Pmaxi
),...
'
_Jmaxi_
'
,
num2str
(
BASIC
.
Jmaxi
),...
'
_pamaxx_
'
,
num2str
(
BASIC
.
pamaxx
),...
'
_tau_
'
,
num2str
(
MODEL_PAR
.
tau
,
'
%
0.4f
'
),...
'
_mu_
'
,
num2str
(
MODEL_PAR
.
mu
,
'
%
0.4f
'
)];
SUFFIX_resfileCie
=
[
'
Coll
'
,...
'
_GKE_
'
,
num2str
(
OPERATOR_MODEL
.
GKE
),...
'
_GKI_
'
,
num2str
(
OPERATOR_MODEL
.
GKI
),...
'
_ITEST_
'
,
num2str
(
OPERATOR_MODEL
.
ITEST
),...
'
_IBACK_
'
,
num2str
(
OPERATOR_MODEL
.
IBACK
),...
'
_Pmaxe_
'
,
num2str
(
BASIC
.
Pmaxe
),...
'
_Jmaxe_
'
,
num2str
(
BASIC
.
Jmaxe
),...
'
_Pmaxi_
'
,
num2str
(
BASIC
.
Pmaxi
),...
'
_Jmaxi_
'
,
num2str
(
BASIC
.
Jmaxi
),...
'
_pamaxx_
'
,
num2str
(
BASIC
.
pamaxx
),...
'
_tau_
'
,
num2str
(
MODEL_PAR
.
tau
,
'
%
0.4f
'
),...
'
_mu_
'
,
num2str
(
MODEL_PAR
.
mu
,
'
%
0.4f
'
)];
SUFFIX_resfileCaa
=
[
'
Coll
'
,...
'
_GKE_
'
,
num2str
(
OPERATOR_MODEL
.
GKE
),...
'
_GKI_
'
,
num2str
(
OPERATOR_MODEL
.
GKI
),...
'
_ESELF_
'
,
num2str
(
OPERATOR_MODEL
.
ESELF
),...
'
_ISELF_
'
,
num2str
(
OPERATOR_MODEL
.
ISELF
),...
'
_Pmaxe_
'
,
num2str
(
BASIC
.
Pmaxe
),...
'
_Jmaxe_
'
,
num2str
(
BASIC
.
Jmaxe
),...
'
_Pmaxi_
'
,
num2str
(
BASIC
.
Pmaxi
),...
'
_Jmaxi_
'
,
num2str
(
BASIC
.
Jmaxi
),...
'
_pamaxx_
'
,
num2str
(
BASIC
.
pamaxx
)];
if
(
OPERATOR_MODEL
.
GKI
||
OPERATOR_MODEL
.
GKE
)
SUFFIX_resfileCei
=
[
SUFFIX_resfileCei
,
'
_kperp_
'
,
num2str
(
MODEL_PAR
.
kperp
,
'
%
0.4f
'
),
'
.
h5
'
];
SUFFIX_resfileCie
=
[
SUFFIX_resfileCie
,
'
_kperp_
'
,
num2str
(
MODEL_PAR
.
kperp
,
'
%
0.4f
'
),
'
.
h5
'
];
SUFFIX_resfileCaa
=
[
SUFFIX_resfileCaa
,
'
_kperp_
'
,
num2str
(
MODEL_PAR
.
kperp
,
'
%
0.4f
'
),
'
.
h5
'
];
else
SUFFIX_resfileCei
=
[
SUFFIX_resfileCei
,
'
.
h5
'
];
SUFFIX_resfileCie
=
[
SUFFIX_resfileCie
,
'
.
h5
'
];
SUFFIX_resfileCaa
=
[
SUFFIX_resfileCaa
,
'
.
h5
'
];
end
resfile
.
resfileCei
=
[
'
ei_
'
,
SUFFIX_resfileCei
];
resfile
.
resfileCie
=
[
'
ie_
'
,
SUFFIX_resfileCie
]
;
resfile
.
resfileCaa
=
[
'
self_
'
,
SUFFIX_resfileCaa
]
;
end
%
End
function
Event Timeline
Log In to Comment