Open orso82 opened 1 year ago
Resistivity would be great.
I have a related request though: I had originally wanted the ability to link pf_passive.loop to build.layers. This would also give me the thickness information, which I'd like to have in the FUSE to Toksys interface.
This is to address problem with triangle meshing generating an excessively large number of triangle for layers that are thin (example: vessel). The Toksys deals with with by using parallelograms for the vessel elements for such layers, and we'd need the thickness for that. Since the layers are generated by FUSE, its a lot easier for FUSE to tell us the thickness, rather than trying to write some way to determine thickness from the R/Z values.
@xinganthony now I populate the pf_passive.loop[...].element[1].identifier
wit the info about the build.later[...]
or build.structure[...]
the data comes from
About the resistivity information, does anyone have a good reference for materials data?
Ideally we'd want to have this information as a function of temperature.
For the time being I think that copper
, some form of steel
, tungsten
, and lead
would suffice.
I asked ChatGPT this and I got this linear model, which I have not double-checked. Perhaps @zalzali27 can benchmark this against what is in COMSOL?
function resistivity(material::String, temperature::Float64)
# Define temperature coefficient of resistivity for different materials
alpha = Dict(
"copper" => 0.00386, # 1/degree Celsius
"steel" => 0.0005, # 1/degree Celsius
"tungsten" => 0.0045, # 1/degree Celsius
"lead" => 0.0039 # 1/degree Celsius
)
# Define reference resistivity at 20 degrees Celsius for different materials
resistivity_20_deg = Dict(
"copper" => 1.72e-8, # Ohm meters
"steel" => 1e-7, # Ohm meters
"tungsten" => 5.6e-8, # Ohm meters
"lead" => 2.2e-7 # Ohm meters
)
if material in keys(alpha) && material in keys(resistivity_20_deg)
# Calculate and return resistivity as a function of temperature
return resistivity_20_deg[material] * (1 + alpha[material] * (temperature - 20))
else
error("Unknown material: $material")
end
end
@xinganthony what does TokSys use for the resistivity of the different materials?
I've checked COMSOL, it seems that one type of materials is available in the GATM model (called Coil_fake_matl
by Jim) which has its own resistivity
But COMSOL has built-in materials with their thermal properties which I can use to get you the answers of each of those materials. It is so advanced that we'd have to specify which type of steel (For example: Si Steel GO 3%...) shown in the screenshot here:
In the hard copy of the thesis Development and Validation of a Computational Tool for Fusion Reactors System Analysis
by Fabrizio Franza
page 112-113, there is content about the conductivity and refers to
current sharing temperature limit
. I will look into it.
From COMSOL:
Copper's resistivity temperature coefficient = 0.0039 [1/K] (Linearized resistivity) - AGREES with the above.
This coefficient is not present for the rest of the materials.
However, there is:
Resistivity temperature coefficient [1/K]
Tungsten = 0.004403[1/K]
Steel alloy at 99.5 percent iron, 0.5 percent carbon tys = 0.003 [1/K]
Some coded values I ran into in TokSys:
Pb: 0.2200 Stainless Steel (ss316): 0.7400 LiPb (~400C): 1.2500 Copper: 1.71e-2
For actual machines though, the resistance values are often calibrated with data and adjusted (as effective toroidal resistance may not be the same as that of a solid block of the material).
EDIT the units for above is micro Ohm meter; so need to multiply by 1e-6 to get typical unit of Ohm meter. These are electrical resistances, which is what TokSys cares about.
Thanks @xinganthony, just to clarify, those values are for the resistance? And in what units?
Here is an online reference for electrical resistivity: http://hyperphysics.phy-astr.gsu.edu/hbase/Tables/rstiv.html.
The numbers where applicable, are close to the values I found above. These should be good enough approximations at this stage I think.
@TimSlendebroek Can I have a new JSON file generated that updates the last one we got with the identifier that Orso put in?
@xinganthony now I populate the
pf_passive.loop[...].element[1].identifier
wit the info about thebuild.later[...]
orbuild.structure[...]
the data comes from
we should work with @xinganthony and @shoushmandyar and control group in general to understand how to translate materials and type of structure to resistivity (which is already in IMAS )