https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
neml2::LAROMANCE6DInterpolation Class Reference

#include <LAROMANCE6DInterpolation.h>

Inheritance diagram for neml2::LAROMANCE6DInterpolation:
[legend]

Public Types

enum class  TransformEnum {
  COMPRESS , DECOMPRESS , LOG10BOUNDED , EXP10BOUNDED ,
  MINMAX
}
 

Public Member Functions

 LAROMANCE6DInterpolation (const OptionSet &options)
 
void request_AD () override
 

Static Public Member Functions

static OptionSet expected_options ()
 

Protected Member Functions

void set_value (bool, bool, bool) override
 

Private Member Functions

std::pair< Scalar, Scalar > findLeftIndexAndFraction (const Scalar &grid, const Scalar &interp_points) const
 find index of input point
 
Scalar interpolate_and_transform () const
 compute interpolated value and transform results
 
Scalar transform_data (const Scalar &data, const std::vector< double > &param, TransformEnum transform_type) const
 transform data
 
std::string json_to_string (const std::string &key) const
 read in json axes transform name
 
std::vector< double > json_to_vector (const std::string &key) const
 read in json axes transform constants
 
Scalar json_6Dvector_to_torch (const std::string &key) const
 read 6D grid date from json and store in Torch tensor
 
Scalar json_vector_to_torch (const std::string &key) const
 read 1D vector of grid points from json and store in Torch tensor
 
Scalar compute_interpolation (const std::vector< std::pair< Scalar, Scalar > > index_and_fraction, const Scalar grid_values) const
 compute interpolated value
 
TransformEnum get_transform_enum (const std::string &name) const
 
Scalar transform_compress (const Scalar &data, const std::vector< double > &params) const
 LAROMANCE transforms for input axes and output axis.
 
Scalar transform_decompress (const Scalar &data, const std::vector< double > &params) const
 
Scalar transform_log10_bounded (const Scalar &data, const std::vector< double > &params) const
 
Scalar transform_exp10_bounded (const Scalar &data, const std::vector< double > &params) const
 
Scalar transform_min_max (const Scalar &data, const std::vector< double > &params) const
 

Private Attributes

Scalar _stress_grid
 grid for interpolation
 
Scalar _temperature_grid
 
Scalar _plastic_strain_grid
 
Scalar _cell_grid
 
Scalar _wall_grid
 
Scalar _env_grid
 
Scalar _grid_values
 grid values being interpolated
 
const Variable< Scalar > & _vm_stress
 Model input for interpolation.
 
const Variable< Scalar > & _temperature
 Temperature.
 
const Variable< Scalar > & _ep_strain
 The creep strain.
 
const Variable< Scalar > & _cell_dd
 cell dislocation density
 
const Variable< Scalar > & _wall_dd
 wall dislocation density
 
const Variable< Scalar > & _env_fac
 environmental factor
 
Variable< Scalar > & _output_rate
 Model output.
 
nlohmann::json _json
 JSON object containing interpolation grid and values.
 
TransformEnum _stress_transform_enum
 input transform enums
 
TransformEnum _temperature_transform_enum
 
TransformEnum _plastic_strain_transform_enum
 
TransformEnum _cell_transform_enum
 
TransformEnum _wall_transform_enum
 
TransformEnum _env_transform_enum
 
std::vector< double > _stress_transform_values
 input transform values
 
std::vector< double > _temperature_transform_values
 
std::vector< double > _plastic_strain_transform_values
 
std::vector< double > _cell_transform_values
 
std::vector< double > _wall_transform_values
 
std::vector< double > _env_transform_values
 
std::string _output_rate_name
 output transform rate name
 
std::vector< double > _output_transform_values
 output transform values
 
TransformEnum _output_transform_enum
 output transform enum
 

Detailed Description

Definition at line 19 of file LAROMANCE6DInterpolation.h.

Member Enumeration Documentation

◆ TransformEnum

Constructor & Destructor Documentation

◆ LAROMANCE6DInterpolation()

neml2::LAROMANCE6DInterpolation::LAROMANCE6DInterpolation ( const OptionSet &  options)

Definition at line 60 of file LAROMANCE6DInterpolation.C.

61 : Model(options),
62 _vm_stress(declare_input_variable<Scalar>("von_mises_stress")),
63 _temperature(declare_input_variable<Scalar>("temperature")),
64 _ep_strain(declare_input_variable<Scalar>("equivalent_plastic_strain")),
65 _cell_dd(declare_input_variable<Scalar>("cell_dislocation_density")),
66 _wall_dd(declare_input_variable<Scalar>("wall_dislocation_density")),
67 _env_fac(declare_input_variable<Scalar>("env_factor")),
68 _output_rate(declare_output_variable<Scalar>("output_rate"))
69{
70 std::string filename = options.get<std::string>("model_file_name");
71 std::ifstream model_file(filename.c_str());
72 model_file >> _json;
73
74 // storing grid points for indexing.
75 // these should be stored differently so that they are all read in at once. The order of this can
76 // get messed up easily
78 _temperature_grid = json_vector_to_torch("in_temperature");
79 _plastic_strain_grid = json_vector_to_torch("in_plastic_strain");
83
84 // Read in grid axes transform enums
85 _stress_transform_enum = get_transform_enum(json_to_string("in_stress_transform_type"));
86 _temperature_transform_enum = get_transform_enum(json_to_string("in_temperature_transform_type"));
88 get_transform_enum(json_to_string("in_plastic_strain_transform_type"));
89 _cell_transform_enum = get_transform_enum(json_to_string("in_cell_transform_type"));
90 _wall_transform_enum = get_transform_enum(json_to_string("in_wall_transform_type"));
91 _env_transform_enum = get_transform_enum(json_to_string("in_env_transform_type"));
92
93 // Read in grid axes transform values
94 _stress_transform_values = json_to_vector("in_stress_transform_values");
95 _temperature_transform_values = json_to_vector("in_temperature_transform_values");
96 _plastic_strain_transform_values = json_to_vector("in_plastic_strain_transform_values");
97 _cell_transform_values = json_to_vector("in_cell_transform_values");
98 _wall_transform_values = json_to_vector("in_wall_transform_values");
99 _env_transform_values = json_to_vector("in_env_transform_values");
100
101 // Storing values for interpolation
102 _output_rate_name = options.get<std::string>("model_file_variable_name");
104
105 // set up output transforms
106 if (_output_rate_name == "out_ep")
107 {
108 _output_transform_enum = get_transform_enum(json_to_string("out_strain_rate_transform_type"));
109 _output_transform_values = json_to_vector("out_strain_rate_transform_values");
110 }
111 else if (_output_rate_name == "out_cell")
112 {
113 _output_transform_enum = get_transform_enum(json_to_string("out_cell_rate_transform_type"));
114 _output_transform_values = json_to_vector("out_cell_rate_transform_values");
115 }
116 else if (_output_rate_name == "out_wall")
117 {
118 _output_transform_enum = get_transform_enum(json_to_string("out_wall_rate_transform_type"));
119 _output_transform_values = json_to_vector("out_wall_rate_transform_values");
120 }
121 else
122 {
123 throw NEMLException("This ouput variable is not implemented, model_file_variable_name: " +
124 std::string(_output_rate_name));
125 }
126}
std::vector< double > _temperature_transform_values
const Variable< Scalar > & _temperature
Temperature.
const Variable< Scalar > & _cell_dd
cell dislocation density
const Variable< Scalar > & _wall_dd
wall dislocation density
const Variable< Scalar > & _vm_stress
Model input for interpolation.
nlohmann::json _json
JSON object containing interpolation grid and values.
TransformEnum _output_transform_enum
output transform enum
Scalar _grid_values
grid values being interpolated
std::vector< double > json_to_vector(const std::string &key) const
read in json axes transform constants
Scalar json_vector_to_torch(const std::string &key) const
read 1D vector of grid points from json and store in Torch tensor
std::vector< double > _output_transform_values
output transform values
Variable< Scalar > & _output_rate
Model output.
Scalar _stress_grid
grid for interpolation
std::string json_to_string(const std::string &key) const
read in json axes transform name
Scalar json_6Dvector_to_torch(const std::string &key) const
read 6D grid date from json and store in Torch tensor
std::vector< double > _stress_transform_values
input transform values
TransformEnum _stress_transform_enum
input transform enums
std::vector< double > _plastic_strain_transform_values
const Variable< Scalar > & _env_fac
environmental factor
const Variable< Scalar > & _ep_strain
The creep strain.
std::string _output_rate_name
output transform rate name
TransformEnum get_transform_enum(const std::string &name) const

Member Function Documentation

◆ compute_interpolation()

Scalar neml2::LAROMANCE6DInterpolation::compute_interpolation ( const std::vector< std::pair< Scalar, Scalar > >  index_and_fraction,
const Scalar  grid_values 
) const
private

compute interpolated value

Definition at line 183 of file LAROMANCE6DInterpolation.C.

185{
186 Scalar result = Scalar::zeros_like(_temperature());
187 for (const auto i : {0, 1})
188 for (const auto j : {0, 1})
189 for (const auto k : {0, 1})
190 for (const auto l : {0, 1})
191 for (const auto m : {0, 1})
192 for (const auto n : {0, 1})
193 {
194 auto vertex_value =
195 grid_values.index({(index_and_fraction[0].first +
196 torch::tensor(i, default_integer_tensor_options())),
197 (index_and_fraction[1].first +
198 torch::tensor(j, default_integer_tensor_options())),
199 (index_and_fraction[2].first +
200 torch::tensor(k, default_integer_tensor_options())),
201 (index_and_fraction[3].first +
202 torch::tensor(l, default_integer_tensor_options())),
203 (index_and_fraction[4].first +
204 torch::tensor(m, default_integer_tensor_options())),
205 (index_and_fraction[5].first +
206 torch::tensor(n, default_integer_tensor_options()))});
207 auto weight = index_and_fraction[0].second.select(-1, i) *
208 index_and_fraction[1].second.select(-1, j) *
209 index_and_fraction[2].second.select(-1, k) *
210 index_and_fraction[3].second.select(-1, l) *
211 index_and_fraction[4].second.select(-1, m) *
212 index_and_fraction[5].second.select(-1, n);
213 result += vertex_value * weight;
214 }
215 return result;
216}
dof_id_type weight(const MeshBase &mesh, const processor_id_type pid)

Referenced by interpolate_and_transform().

◆ expected_options()

OptionSet neml2::LAROMANCE6DInterpolation::expected_options ( )
static

Definition at line 30 of file LAROMANCE6DInterpolation.C.

31{
32 auto options = Model::expected_options();
33 options.doc() =
34 "Multilinear interpolation over six dimensions (von_mises_stress, temperature, "
35 "equivalent_plastic_strain, cell_dislocation_density, wall_dislocation_density, env_factor)";
36
37 // Model inputs
38 options.add_input("equivalent_plastic_strain", "The equivalent plastic strain");
39 options.add_input("von_mises_stress", "The von Mises stress");
40 options.add_input("cell_dislocation_density", "The cell dislocation density");
41 options.add_input("wall_dislocation_density", "The wall dislocation density");
42 options.add_input("temperature", "The temperature");
43 options.add_input("env_factor", "The environment factor");
44
45 // Model Outputs
46 options.add_output("output_rate", "The output rate");
47
48 // JSON
49 options.add<std::string>("model_file_name", "The name of the model file");
50 options.add<std::string>("model_file_variable_name",
51 "The name of the variable in the model file");
52
53 // jit does not currently work with this
54 options.set<bool>("jit", false);
55 options.suppress("jit");
56
57 return options;
58}

◆ findLeftIndexAndFraction()

std::pair< Scalar, Scalar > neml2::LAROMANCE6DInterpolation::findLeftIndexAndFraction ( const Scalar &  grid,
const Scalar &  interp_points 
) const
private

find index of input point

Definition at line 164 of file LAROMANCE6DInterpolation.C.

166{
167 // idx is for the left grid point.
168 // searchsorted returns the right idx so -1 makes it the left
169 auto left_idx = Scalar(torch::searchsorted(grid, interp_points) - 1, 0);
170
171 // this allows us to extrapolate
172 left_idx = Scalar(torch::clamp(left_idx, 0, grid.sizes()[0] - 2), 0);
173
174 auto left_coord = grid.dynamic_index({left_idx});
175 auto right_coord =
176 grid.dynamic_index({left_idx + torch::tensor(1, default_integer_tensor_options())});
177 auto left_fraction = (right_coord - interp_points) / (right_coord - left_coord);
178
179 return {left_idx, neml2::dynamic_stack({left_fraction, 1 - left_fraction}, -1)};
180}

Referenced by interpolate_and_transform().

◆ get_transform_enum()

LAROMANCE6DInterpolation::TransformEnum neml2::LAROMANCE6DInterpolation::get_transform_enum ( const std::string &  name) const
private

Definition at line 147 of file LAROMANCE6DInterpolation.C.

148{
149 if (name == "COMPRESS")
151 else if (name == "DECOMPRESS")
153 else if (name == "LOG10BOUNDED")
155 else if (name == "EXP10BOUNDED")
157 else if (name == "MINMAX")
159
160 throw NEMLException("Unrecognized transform: " + std::string(name));
161}
const std::string name
Definition Setup.h:21

Referenced by LAROMANCE6DInterpolation().

◆ interpolate_and_transform()

Scalar neml2::LAROMANCE6DInterpolation::interpolate_and_transform ( ) const
private

compute interpolated value and transform results

compute interpolated value

Definition at line 220 of file LAROMANCE6DInterpolation.C.

221{
222 // These transform constants should be given in the json file.
223 const auto cell_dd_transformed =
225 const auto wall_dd_transformed =
227 const auto vm_stress_transformed =
229 const auto ep_strain_transformed = transform_data(
231 const auto temperature_transformed =
233 const auto env_fac_transformed =
235
236 std::vector<std::pair<Scalar, Scalar>> left_index_weight;
237 left_index_weight.push_back(findLeftIndexAndFraction(_stress_grid, vm_stress_transformed));
238 left_index_weight.push_back(findLeftIndexAndFraction(_temperature_grid, temperature_transformed));
239 left_index_weight.push_back(
240 findLeftIndexAndFraction(_plastic_strain_grid, ep_strain_transformed));
241 left_index_weight.push_back(findLeftIndexAndFraction(_cell_grid, cell_dd_transformed));
242 left_index_weight.push_back(findLeftIndexAndFraction(_wall_grid, wall_dd_transformed));
243 left_index_weight.push_back(findLeftIndexAndFraction(_env_grid, env_fac_transformed));
244 Scalar interpolated_result = compute_interpolation(left_index_weight, _grid_values);
245 Scalar transformed_result =
247 return transformed_result;
248}
std::pair< Scalar, Scalar > findLeftIndexAndFraction(const Scalar &grid, const Scalar &interp_points) const
find index of input point
Scalar transform_data(const Scalar &data, const std::vector< double > &param, TransformEnum transform_type) const
transform data
Scalar compute_interpolation(const std::vector< std::pair< Scalar, Scalar > > index_and_fraction, const Scalar grid_values) const
compute interpolated value

Referenced by set_value().

◆ json_6Dvector_to_torch()

Scalar neml2::LAROMANCE6DInterpolation::json_6Dvector_to_torch ( const std::string &  key) const
private

read 6D grid date from json and store in Torch tensor

Definition at line 376 of file LAROMANCE6DInterpolation.C.

377{
378 using std::vector;
379 if (!_json.contains(key))
380 throw NEMLException("The key '" + std::string(key) + "' is missing from the JSON data file.");
381
382 vector<vector<vector<vector<vector<vector<double>>>>>> out_data =
383 _json[key].get<vector<vector<vector<vector<vector<vector<double>>>>>>>();
384
385 const int64_t sz_l0 = out_data.size();
386 const int64_t sz_l1 = out_data[0].size();
387 const int64_t sz_l2 = out_data[0][0].size();
388 const int64_t sz_l3 = out_data[0][0][0].size();
389 const int64_t sz_l4 = out_data[0][0][0][0].size();
390 const int64_t sz_l5 = out_data[0][0][0][0][0].size();
391
392 auto check_level_size =
393 [](const int64_t current_vec_size, const int64_t sz_level, const std::string & key)
394 {
395 if (current_vec_size != sz_level)
396 throw NEMLException("Incorrect JSON interpolation grid size for '" + key + "'.");
397 };
398
399 std::vector<double> linearize_values;
400 check_level_size(out_data.size(), sz_l0, key);
401 for (auto && level1 : out_data)
402 {
403 check_level_size(level1.size(), sz_l1, key);
404 for (auto && level2 : level1)
405 {
406 check_level_size(level2.size(), sz_l2, key);
407 for (auto && level3 : level2)
408 {
409 check_level_size(level3.size(), sz_l3, key);
410 for (auto && level4 : level3)
411 {
412 check_level_size(level4.size(), sz_l4, key);
413 for (auto && level5 : level4)
414 {
415 check_level_size(level5.size(), sz_l5, key);
416 for (auto && value : level5)
417 linearize_values.push_back(value);
418 }
419 }
420 }
421 }
422 }
423
424 return Scalar::create(linearize_values)
425 .dynamic_reshape({sz_l0, sz_l1, sz_l2, sz_l3, sz_l4, sz_l5})
426 .clone();
427}
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

Referenced by LAROMANCE6DInterpolation().

◆ json_to_string()

std::string neml2::LAROMANCE6DInterpolation::json_to_string ( const std::string &  key) const
private

read in json axes transform name

Definition at line 346 of file LAROMANCE6DInterpolation.C.

347{
348 if (!_json.contains(key))
349 throw NEMLException("The key '" + std::string(key) + "' is missing from the JSON data file.");
350
351 std::string name = _json[key].get<std::string>();
352 return name;
353}

Referenced by LAROMANCE6DInterpolation().

◆ json_to_vector()

std::vector< double > neml2::LAROMANCE6DInterpolation::json_to_vector ( const std::string &  key) const
private

read in json axes transform constants

Definition at line 356 of file LAROMANCE6DInterpolation.C.

357{
358 if (!_json.contains(key))
359 throw NEMLException("The key '" + std::string(key) + "' is missing from the JSON data file.");
360
361 std::vector<double> data_vec = _json[key].get<std::vector<double>>();
362 return data_vec;
363}

Referenced by LAROMANCE6DInterpolation().

◆ json_vector_to_torch()

Scalar neml2::LAROMANCE6DInterpolation::json_vector_to_torch ( const std::string &  key) const
private

read 1D vector of grid points from json and store in Torch tensor

Definition at line 366 of file LAROMANCE6DInterpolation.C.

367{
368 if (!_json.contains(key))
369 throw NEMLException("The key '" + std::string(key) + "' is missing from the JSON data file.");
370
371 std::vector<double> in_data = _json[key].get<std::vector<double>>();
372 return Scalar::create(in_data).clone();
373}

Referenced by LAROMANCE6DInterpolation().

◆ request_AD()

void neml2::LAROMANCE6DInterpolation::request_AD ( )
override

Definition at line 129 of file LAROMANCE6DInterpolation.C.

130{
131 // only using first derivatives of out_ep, not out_cell and out_wall
132 if (_output_rate_name == "out_ep")
133 {
134 std::vector<const VariableBase *> inputs = {&_vm_stress};
135 _output_rate.request_AD(inputs);
136 }
137}

◆ set_value()

void neml2::LAROMANCE6DInterpolation::set_value ( bool  out,
bool  ,
bool   
)
overrideprotected

Definition at line 140 of file LAROMANCE6DInterpolation.C.

141{
142 if (out)
144}
Scalar interpolate_and_transform() const
compute interpolated value and transform results

◆ transform_compress()

Scalar neml2::LAROMANCE6DInterpolation::transform_compress ( const Scalar &  data,
const std::vector< double > &  params 
) const
private

LAROMANCE transforms for input axes and output axis.

Definition at line 278 of file LAROMANCE6DInterpolation.C.

280{
281 double factor = param[0];
282 double compressor = param[1];
283 double original_min = param[2];
284 auto d1 = neml2::sign(data) * neml2::pow(neml2::abs(data * factor), compressor);
285 auto transformed_data = neml2::log10(1.0 + d1 - original_min);
286 return transformed_data;
287}

Referenced by transform_data().

◆ transform_data()

Scalar neml2::LAROMANCE6DInterpolation::transform_data ( const Scalar &  data,
const std::vector< double > &  param,
TransformEnum  transform_type 
) const
private

transform data

Definition at line 251 of file LAROMANCE6DInterpolation.C.

254{
255 switch (transform_type)
256 {
258 return transform_compress(data, param);
259
261 return transform_decompress(data, param);
262
264 return transform_log10_bounded(data, param);
265
267 return transform_exp10_bounded(data, param);
268
270 return transform_min_max(data, param);
271
272 default:
273 return data;
274 }
275}
Scalar transform_decompress(const Scalar &data, const std::vector< double > &params) const
Scalar transform_log10_bounded(const Scalar &data, const std::vector< double > &params) const
Scalar transform_min_max(const Scalar &data, const std::vector< double > &params) const
Scalar transform_exp10_bounded(const Scalar &data, const std::vector< double > &params) const
Scalar transform_compress(const Scalar &data, const std::vector< double > &params) const
LAROMANCE transforms for input axes and output axis.

Referenced by interpolate_and_transform().

◆ transform_decompress()

Scalar neml2::LAROMANCE6DInterpolation::transform_decompress ( const Scalar &  data,
const std::vector< double > &  params 
) const
private

Definition at line 290 of file LAROMANCE6DInterpolation.C.

292{
293 double factor = param[0];
294 double compressor = param[1];
295 double original_min = param[2];
296 auto d1 = neml2::pow(10.0, data) - 1.0 + original_min;
297 auto transformed_data = neml2::sign(d1) * neml2::pow(neml2::abs(d1), 1.0 / compressor) / factor;
298 return transformed_data;
299}

Referenced by transform_data().

◆ transform_exp10_bounded()

Scalar neml2::LAROMANCE6DInterpolation::transform_exp10_bounded ( const Scalar &  data,
const std::vector< double > &  params 
) const
private

Definition at line 318 of file LAROMANCE6DInterpolation.C.

320{
321 double factor = param[0];
322 double lowerbound = param[1];
323 double upperbound = param[2];
324 double logmin = param[3];
325 double logmax = param[4];
326 double range = upperbound - lowerbound;
327 auto transformed_data =
328 (neml2::pow(10.0, ((data - lowerbound) * (logmax - logmin) / range) + logmin) - factor);
329 return transformed_data;
330}

Referenced by transform_data().

◆ transform_log10_bounded()

Scalar neml2::LAROMANCE6DInterpolation::transform_log10_bounded ( const Scalar &  data,
const std::vector< double > &  params 
) const
private

Definition at line 302 of file LAROMANCE6DInterpolation.C.

305{
306 double factor = param[0];
307 double lowerbound = param[1];
308 double upperbound = param[2];
309 double logmin = param[3];
310 double logmax = param[4];
311 double range = upperbound - lowerbound;
312 auto transformed_data =
313 range * (neml2::log10(data + factor) - logmin) / (logmax - logmin) + lowerbound;
314 return transformed_data;
315}

Referenced by transform_data().

◆ transform_min_max()

Scalar neml2::LAROMANCE6DInterpolation::transform_min_max ( const Scalar &  data,
const std::vector< double > &  params 
) const
private

Definition at line 333 of file LAROMANCE6DInterpolation.C.

335{
336 double data_min = param[0];
337 double data_max = param[1];
338 double scaled_min = param[2];
339 double scaled_max = param[3];
340 auto transformed_data =
341 ((data - data_min) / (data_max - data_min)) * (scaled_max - scaled_min) + scaled_min;
342 return transformed_data;
343}

Referenced by transform_data().

Member Data Documentation

◆ _cell_dd

const Variable<Scalar>& neml2::LAROMANCE6DInterpolation::_cell_dd
private

cell dislocation density

Definition at line 61 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform().

◆ _cell_grid

Scalar neml2::LAROMANCE6DInterpolation::_cell_grid
private

◆ _cell_transform_enum

TransformEnum neml2::LAROMANCE6DInterpolation::_cell_transform_enum
private

◆ _cell_transform_values

std::vector<double> neml2::LAROMANCE6DInterpolation::_cell_transform_values
private

◆ _env_fac

const Variable<Scalar>& neml2::LAROMANCE6DInterpolation::_env_fac
private

environmental factor

Definition at line 65 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform().

◆ _env_grid

Scalar neml2::LAROMANCE6DInterpolation::_env_grid
private

◆ _env_transform_enum

TransformEnum neml2::LAROMANCE6DInterpolation::_env_transform_enum
private

◆ _env_transform_values

std::vector<double> neml2::LAROMANCE6DInterpolation::_env_transform_values
private

◆ _ep_strain

const Variable<Scalar>& neml2::LAROMANCE6DInterpolation::_ep_strain
private

The creep strain.

Definition at line 59 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform().

◆ _grid_values

Scalar neml2::LAROMANCE6DInterpolation::_grid_values
private

grid values being interpolated

Definition at line 50 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform(), and LAROMANCE6DInterpolation().

◆ _json

nlohmann::json neml2::LAROMANCE6DInterpolation::_json
private

JSON object containing interpolation grid and values.

Definition at line 75 of file LAROMANCE6DInterpolation.h.

Referenced by json_6Dvector_to_torch(), json_to_string(), json_to_vector(), json_vector_to_torch(), and LAROMANCE6DInterpolation().

◆ _output_rate

Variable<Scalar>& neml2::LAROMANCE6DInterpolation::_output_rate
private

Model output.

output rate

Definition at line 71 of file LAROMANCE6DInterpolation.h.

Referenced by request_AD(), and set_value().

◆ _output_rate_name

std::string neml2::LAROMANCE6DInterpolation::_output_rate_name
private

output transform rate name

Definition at line 124 of file LAROMANCE6DInterpolation.h.

Referenced by LAROMANCE6DInterpolation(), and request_AD().

◆ _output_transform_enum

TransformEnum neml2::LAROMANCE6DInterpolation::_output_transform_enum
private

output transform enum

Definition at line 128 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform(), and LAROMANCE6DInterpolation().

◆ _output_transform_values

std::vector<double> neml2::LAROMANCE6DInterpolation::_output_transform_values
private

output transform values

Definition at line 126 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform(), and LAROMANCE6DInterpolation().

◆ _plastic_strain_grid

Scalar neml2::LAROMANCE6DInterpolation::_plastic_strain_grid
private

◆ _plastic_strain_transform_enum

TransformEnum neml2::LAROMANCE6DInterpolation::_plastic_strain_transform_enum
private

◆ _plastic_strain_transform_values

std::vector<double> neml2::LAROMANCE6DInterpolation::_plastic_strain_transform_values
private

◆ _stress_grid

Scalar neml2::LAROMANCE6DInterpolation::_stress_grid
private

grid for interpolation

Definition at line 42 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform(), and LAROMANCE6DInterpolation().

◆ _stress_transform_enum

TransformEnum neml2::LAROMANCE6DInterpolation::_stress_transform_enum
private

input transform enums

Definition at line 108 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform(), and LAROMANCE6DInterpolation().

◆ _stress_transform_values

std::vector<double> neml2::LAROMANCE6DInterpolation::_stress_transform_values
private

input transform values

Definition at line 116 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform(), and LAROMANCE6DInterpolation().

◆ _temperature

const Variable<Scalar>& neml2::LAROMANCE6DInterpolation::_temperature
private

Temperature.

Definition at line 57 of file LAROMANCE6DInterpolation.h.

Referenced by compute_interpolation(), and interpolate_and_transform().

◆ _temperature_grid

Scalar neml2::LAROMANCE6DInterpolation::_temperature_grid
private

◆ _temperature_transform_enum

TransformEnum neml2::LAROMANCE6DInterpolation::_temperature_transform_enum
private

◆ _temperature_transform_values

std::vector<double> neml2::LAROMANCE6DInterpolation::_temperature_transform_values
private

◆ _vm_stress

const Variable<Scalar>& neml2::LAROMANCE6DInterpolation::_vm_stress
private

Model input for interpolation.

The von Mises stress

Definition at line 55 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform(), and request_AD().

◆ _wall_dd

const Variable<Scalar>& neml2::LAROMANCE6DInterpolation::_wall_dd
private

wall dislocation density

Definition at line 63 of file LAROMANCE6DInterpolation.h.

Referenced by interpolate_and_transform().

◆ _wall_grid

Scalar neml2::LAROMANCE6DInterpolation::_wall_grid
private

◆ _wall_transform_enum

TransformEnum neml2::LAROMANCE6DInterpolation::_wall_transform_enum
private

◆ _wall_transform_values

std::vector<double> neml2::LAROMANCE6DInterpolation::_wall_transform_values
private

The documentation for this class was generated from the following files: