Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #include "MOOSEToNEML2.h" 11 : 12 : InputParameters 13 171255 : MOOSEToNEML2::validParams() 14 : { 15 171255 : auto params = emptyInputParameters(); 16 171255 : params.addRequiredParam<std::string>( 17 342510 : "to_neml2", NEML2Utils::docstring("Name of the NEML2 variable or parameter to write to")); 18 171255 : return params; 19 0 : } 20 : 21 : #ifndef NEML2_ENABLED 22 : 23 0 : MOOSEToNEML2::MOOSEToNEML2(const InputParameters & /*params*/) {} 24 : 25 : #else 26 : 27 38 : MOOSEToNEML2::MOOSEToNEML2(const InputParameters & params) 28 38 : : _mode(Mode::UNDEFINED), _raw_name(params.get<std::string>("to_neml2")) 29 : { 30 38 : NEML2Utils::assertNEML2Enabled(); 31 38 : } 32 : 33 : void 34 37 : MOOSEToNEML2::setMode(MOOSEToNEML2::Mode m) const 35 : { 36 37 : _mode = m; 37 : 38 37 : if (_mode == Mode::VARIABLE || _mode == Mode::OLD_VARIABLE) 39 35 : _neml2_variable = NEML2Utils::parseVariableName(_raw_name); 40 2 : else if (_mode == Mode::PARAMETER) 41 2 : _neml2_parameter = _raw_name; 42 : else 43 0 : mooseError("Encountered invalid Mode in MOOSEToNEML2::setMode"); 44 : 45 37 : checkMode(); 46 37 : } 47 : 48 : void 49 37 : MOOSEToNEML2::checkMode() const 50 : { 51 37 : if (_mode == Mode::VARIABLE) 52 35 : NEML2Utils::assertVariable(_neml2_variable); 53 37 : if (_mode == Mode::OLD_VARIABLE) 54 0 : NEML2Utils::assertOldVariable(_neml2_variable); 55 37 : } 56 : 57 : const neml2::VariableName & 58 35 : MOOSEToNEML2::NEML2VariableName() const 59 : { 60 : mooseAssert(_mode == Mode::VARIABLE || _mode == Mode::OLD_VARIABLE, 61 : "Mode must be VARIABLE or OLD_VARIABLE when calling NEML2Variable"); 62 35 : return _neml2_variable; 63 : } 64 : 65 : const std::string & 66 2 : MOOSEToNEML2::NEML2ParameterName() const 67 : { 68 : mooseAssert(_mode == Mode::PARAMETER, "Mode must be PARAMETER when calling NEML2Parameter"); 69 2 : return _neml2_parameter; 70 : } 71 : 72 : void 73 1731 : MOOSEToNEML2::insertInto(neml2::ValueMap & input, 74 : std::map<std::string, neml2::Tensor> & params) const 75 : { 76 1731 : if (_mode == Mode::VARIABLE || _mode == Mode::OLD_VARIABLE) 77 1725 : input[_neml2_variable] = gatheredData(); 78 6 : else if (_mode == Mode::PARAMETER) 79 6 : params[_neml2_parameter] = gatheredData(); 80 : else 81 0 : mooseError("Encountered invalid Mode in MOOSEToNEML2::insertInto"); 82 1731 : } 83 : #endif