# -*- coding: utf-8 -*-
"""
.. Authors
Novimir A. Pablant <nablant@pppl.gov>
Yevgeniy Yakusevich <eugenethree@gmail.com>
Description
-----------
A plasma object with toroidal geometry and a circular cross-section.
Here the plasma profiles are read from a text files.
"""
import numpy as np
from xicsrt.tools.xicsrt_doc import dochelper
from xicsrt.sources._XicsrtPlasmaToroidal import XicsrtPlasmaToroidal
from xicsrt.util import profiler
[docs]
@dochelper
class XicsrtPlasmaToroidalDatafile(XicsrtPlasmaToroidal):
[docs]
def default_config(self):
config = super().default_config()
config['emissivity_file'] = None
config['temperature_file'] = None
config['velocity_file'] = None
return config
[docs]
def get_emissivity(self, rho):
output = np.zeros(len(rho))
# Read and interpolate profile from data file
data = np.loadtxt(self.param['emissivity_file'], dtype = np.float64)
output[:] = np.interp(rho, data[:,0], data[:,1], left=0.0, right=0.0)
return output
[docs]
def get_temperature(self, rho):
output = np.zeros(len(rho))
# Read and interpolate profile from data file
data = np.loadtxt(self.param['temperature_file'], dtype = np.float64)
output[:] = np.interp(rho, data[:,0], data[:,1], left=0.0, right=0.0)
return output