eisgenerator 1.0.x
|
The main class of eisgenerator representing a equivalent circuit model. More...
#include <model.h>
Public Member Functions | |
Model (const std::string &str, size_t paramSweepCount=100, bool defaultToRange=true) | |
Constructor. | |
Model (const Model &in) | |
Model & | operator= (const Model &in) |
size_t | setParamSweepCountClosestTotal (size_t totalCount) |
Adjusts the sweep count so that the total of spectra that need to be generated in the parameter sweep is close to the given value. | |
DataPoint | execute (fvalue omaga, size_t index=0) |
Gets the impedance at the given frequency this method calls resolveSteps. | |
std::vector< DataPoint > | executeSweep (const Range &omega, size_t index=0) |
Executes a frequency sweep along the given range this method calls resolveSteps. | |
std::vector< DataPoint > | executeSweep (const std::vector< fvalue > &omega, size_t index=0) |
Executes a frequency sweep with the given omega values. | |
std::vector< std::vector< DataPoint > > | executeAllSweeps (const Range &omega) |
Executes a frequency sweep with the given omega values for each parameter combination in the applied parameter sweep this method calls resolveSteps. | |
std::string | getModelStr () const |
Returns the model string corresponding to this model object, without embedded parameters. | |
std::string | getModelStrWithParam (size_t index) |
Returns the model string corresponding to this model object, with embedded parameters this method calls resolveSteps. | |
std::string | getModelStrWithParam () const |
Returns the model string corresponding to this model object, with embedded parameters the parameter sweep index of the last call to resolveSteps or 0 is used. | |
size_t | getUuid () |
Returns a unique id that is unique for this circuit, but not for this object specifically. | |
std::vector< Componant * > | getFlatComponants (Componant *model=nullptr) |
Returns a vector of pointers to the circuit elements in this model the pointers can only be assumed to be valid until the next member call to this model object. | |
std::vector< fvalue > | getFlatParameters () |
gets the values of the parameters of the circuit elements at the current parameter sweep step | |
std::vector< Range > | getFlatParameterRanges () |
gets the ranges of the parameters of the circuit elements | |
std::vector< Range > | getDefaultParameters () |
gets the default ranges of the parameters of each type of circuit element used in the model | |
size_t | getParameterCount () |
gets the total number of parameters used by all the circuit elements in this model | |
bool | compile () |
this function compiles the model into native vectorized code for faster execution | |
bool | isReady () |
this member determines if the model is in a state ready to execute | |
void | resolveSteps (int64_t index) |
this member resolves the parameters of all circuit elements at the given parameter sweep step | |
size_t | getRequiredStepsForSweeps () |
gets the total number of parameter sweep steps for the applied sweep | |
bool | isParamSweep () |
checks if the model is a sweep (i.e. | |
std::string | getCode () |
compiles this model into efficient c++ code corresponding to the circuit of this model | |
std::string | getTorchScript () |
compiles this model into TorchScript to be compiled by torch::jit::compile | |
std::string | getCompiledFunctionName () |
Gets the function name in the code for this model. | |
std::vector< size_t > | getRecommendedParamIndices (eis::Range omegaRange, double distance, bool threaded=false) |
Gets the function name in the code returned by getTorchScript and getCode for this model. | |
The main class of eisgenerator representing a equivalent circuit model.
eis::Model::Model | ( | const std::string & | str, |
size_t | paramSweepCount = 100 , |
||
bool | defaultToRange = true |
||
) |
Constructor.
parse_errror |
str | the model string to create a model object for |
paramSweepCount | optionally the number of sweep point to use for parameter sweeps |
defaultToRange | optionally a bool that if true, circuit elements not given in str are defaulted to a range instead of a fixed value |
bool eis::Model::compile | ( | ) |
this function compiles the model into native vectorized code for faster execution
This function compiles a shared-object for this model that is then loaded by eisgenerator to speed up execution of this model by a factor of 10 or more by employing vectorization and avoiding function calls.
This function is slow, but results are cached for the lifetime of process linked to libeisgenerator so that a circuit has to be compiled only once and can then be used by any number of Model objects.
This function is only implemented on UNIX, on other platforms this function will always return false. This function also requires that GCC be available in PATH.
DataPoint eis::Model::execute | ( | fvalue | omaga, |
size_t | index = 0 |
||
) |
Gets the impedance at the given frequency this method calls resolveSteps.
omega | the frequency in rad/s to calculate the impedance at |
index | an optional index to the parameter sweep step at which to calculate the impedance |
Executes a frequency sweep with the given omega values for each parameter combination in the applied parameter sweep this method calls resolveSteps.
omega | the range along which to execute a frequency sweep |
Executes a frequency sweep along the given range this method calls resolveSteps.
omega | the range along which to execute a frequency sweep |
index | an optional index to the parameter sweep step at which to calculate the impedance |
std::vector< DataPoint > eis::Model::executeSweep | ( | const std::vector< fvalue > & | omega, |
size_t | index = 0 |
||
) |
Executes a frequency sweep with the given omega values.
omega | a vector of frequencies in rad/s to calculate the impedance at |
index | an optional index to the parameter sweep step at which to calculate the impedance |
std::string eis::Model::getCode | ( | ) |
compiles this model into efficient c++ code corresponding to the circuit of this model
std::string eis::Model::getCompiledFunctionName | ( | ) |
Gets the function name in the code for this model.
std::vector< Range > eis::Model::getDefaultParameters | ( | ) |
gets the default ranges of the parameters of each type of circuit element used in the model
Returns a vector of pointers to the circuit elements in this model the pointers can only be assumed to be valid until the next member call to this model object.
model | for internal use only |
std::vector< Range > eis::Model::getFlatParameterRanges | ( | ) |
gets the ranges of the parameters of the circuit elements
std::vector< fvalue > eis::Model::getFlatParameters | ( | ) |
gets the values of the parameters of the circuit elements at the current parameter sweep step
std::string eis::Model::getModelStr | ( | ) | const |
Returns the model string corresponding to this model object, without embedded parameters.
std::string eis::Model::getModelStrWithParam | ( | ) | const |
Returns the model string corresponding to this model object, with embedded parameters the parameter sweep index of the last call to resolveSteps or 0 is used.
std::string eis::Model::getModelStrWithParam | ( | size_t | index | ) |
Returns the model string corresponding to this model object, with embedded parameters this method calls resolveSteps.
index | the parameter sweep index for which to embed the parameters |
size_t eis::Model::getParameterCount | ( | ) |
gets the total number of parameters used by all the circuit elements in this model
std::vector< size_t > eis::Model::getRecommendedParamIndices | ( | eis::Range | omegaRange, |
double | distance, | ||
bool | threaded = false |
||
) |
Gets the function name in the code returned by getTorchScript and getCode for this model.
size_t eis::Model::getRequiredStepsForSweeps | ( | ) |
gets the total number of parameter sweep steps for the applied sweep
std::string eis::Model::getTorchScript | ( | ) |
compiles this model into TorchScript to be compiled by torch::jit::compile
size_t eis::Model::getUuid | ( | ) |
Returns a unique id that is unique for this circuit, but not for this object specifically.
bool eis::Model::isParamSweep | ( | ) |
checks if the model is a sweep (i.e.
has at least one parameter with a range)
bool eis::Model::isReady | ( | ) |
this member determines if the model is in a state ready to execute
void eis::Model::resolveSteps | ( | int64_t | index | ) |
this member resolves the parameters of all circuit elements at the given parameter sweep step
index | the index to the sweep step to resolve to |
size_t eis::Model::setParamSweepCountClosestTotal | ( | size_t | totalCount | ) |
Adjusts the sweep count so that the total of spectra that need to be generated in the parameter sweep is close to the given value.
totalCount | the total number of spectra to target |