template<typename T>
class neml2::LinearInterpolation< T >
Linearly interpolate the parameter along an intermediate axis.
Reduction is done along the specified intermediate axis. The dynamic shape of the output tensor is determined by broadcasting the input, abscissa, and ordinate tensors. The base shape of the output tensor is the same as the ordinate tensor.
|
| | LinearInterpolation (const OptionSet &options) |
| |
| | Interpolation (const OptionSet &options) |
| |
| | Model (const OptionSet &options) |
| | Construct a new Model object.
|
| |
| void | setup () override |
| | Setup this object.
|
| |
| void | diagnose () const override |
| | Check for common problems.
|
| |
| virtual bool | defines_values () const |
| | Whether this model defines output values.
|
| |
| virtual bool | defines_derivatives () const |
| | Whether this model defines first derivatives.
|
| |
| virtual bool | defines_second_derivatives () const |
| | Whether this model defines second derivatives.
|
| |
| virtual bool | is_nonlinear_system () const |
| | Whether this model defines one or more nonlinear equations to be solved.
|
| |
| virtual bool | is_jit_enabled () const |
| | Whether JIT is enabled.
|
| |
| virtual void | to (const TensorOptions &options) |
| | Send model to a different device or dtype.
|
| |
| const std::vector< std::shared_ptr< Model > > & | registered_models () const |
| | The models that may be used during the evaluation of this model.
|
| |
| std::shared_ptr< Model > | registered_model (const std::string &name) const |
| | Get a registered model by its name.
|
| |
| void | register_nonlinear_parameter (const std::string &pname, const NonlinearParameter ¶m) |
| | Register a nonlinear parameter.
|
| |
| bool | has_nl_param (bool recursive=false) const |
| | Whether this parameter store has any nonlinear parameter.
|
| |
| const VariableBase * | nl_param (const std::string &) const |
| | Query the existence of a nonlinear parameter.
|
| |
| virtual std::map< std::string, NonlinearParameter > | named_nonlinear_parameters (bool recursive=false) const |
| | Get all nonlinear parameters.
|
| |
| std::set< VariableName > | consumed_items () const override |
| | The variables that this model depends on.
|
| |
| std::set< VariableName > | provided_items () const override |
| | The variables that this model defines as part of its output.
|
| |
| void | request_AD (VariableBase &y, const VariableBase &u) |
| | Request to use AD to compute the first derivative of a variable.
|
| |
| void | request_AD (VariableBase &y, const VariableBase &u1, const VariableBase &u2) |
| | Request to use AD to compute the second derivative of a variable.
|
| |
| void | clear_input () override |
| |
| void | clear_output () override |
| |
| void | zero_undefined_input () override |
| | Fill undefined input variables with zeros.
|
| |
| void | forward_maybe_jit (bool out, bool dout, bool d2out) |
| | Forward operator with jit.
|
| |
| std::string | variable_name_lookup (const ATensor &var) const |
| | Look up the name of a variable in the traced graph.
|
| |
| virtual ValueMap | value (const ValueMap &in) |
| | Convenient shortcut to construct and return the model value.
|
| |
| virtual std::tuple< ValueMap, DerivMap > | value_and_dvalue (const ValueMap &in) |
| | Convenient shortcut to construct and return the model value and its derivative.
|
| |
| virtual DerivMap | dvalue (const ValueMap &in) |
| | Convenient shortcut to construct and return the derivative.
|
| |
| virtual std::tuple< ValueMap, DerivMap, SecDerivMap > | value_and_dvalue_and_d2value (const ValueMap &in) |
| | Convenient shortcut to construct and return the model's value, first and second derivative.
|
| |
| virtual SecDerivMap | d2value (const ValueMap &in) |
| | Convenient shortcut to construct and return the model's second derivative.
|
| |
| virtual std::tuple< DerivMap, SecDerivMap > | dvalue_and_d2value (const ValueMap &in) |
| | Convenient shortcut to construct and return the model's first and second derivative.
|
| |
| | Data (const OptionSet &options) |
| | Construct a new Data object.
|
| |
| const std::vector< std::shared_ptr< Data > > & | registered_data () const |
| | All the registered data objects.
|
| |
| | NEML2Object ()=delete |
| |
| | NEML2Object (NEML2Object &&)=delete |
| |
| | NEML2Object (const NEML2Object &)=delete |
| |
| NEML2Object & | operator= (NEML2Object &&)=delete |
| |
| NEML2Object & | operator= (const NEML2Object &)=delete |
| |
| virtual | ~NEML2Object ()=default |
| |
| | NEML2Object (const OptionSet &options) |
| | Construct a new NEML2Object object.
|
| |
| const OptionSet & | input_options () const |
| |
| const std::string & | name () const |
| | A readonly reference to the object's name.
|
| |
| const std::string & | type () const |
| | A readonly reference to the object's type.
|
| |
| const std::string & | path () const |
| | A readonly reference to the object's path.
|
| |
| const std::string & | doc () const |
| | A readonly reference to the object's docstring.
|
| |
| Factory * | factory () const |
| | Get the factory that created this object.
|
| |
| const Settings & | settings () const |
| | Settings.
|
| |
| template<typename T = NEML2Object> |
| const T * | host () const |
| | Get a readonly pointer to the host.
|
| |
| template<typename T = NEML2Object> |
| T * | host () |
| | Get a writable pointer to the host.
|
| |
| template<typename T > |
| const T & | resolve_tensor (const std::string &name) |
| | Resolve a TensorName to a Tensor.
|
| |
| template<class T > |
| std::shared_ptr< T > | get_object (const std::string §ion, const std::string &name) |
| |
| template<class T = Solver> |
| std::shared_ptr< T > | get_solver (const std::string &name) |
| | Get a solver from the factory.
|
| |
| template<class T = Data> |
| std::shared_ptr< T > | get_data (const std::string &name) |
| | Get a data from the factory.
|
| |
| template<class T = Model> |
| std::shared_ptr< T > | get_model (const std::string &name) |
| | Get a model from the factory.
|
| |
| template<class T = Driver> |
| std::shared_ptr< T > | get_driver (const std::string &name) |
| | Get a driver from the factory.
|
| |
| template<class T = WorkScheduler> |
| std::shared_ptr< T > | get_scheduler (const std::string &name) |
| | Get a scheduler from the factory.
|
| |
| | BufferStore (NEML2Object *object) |
| |
| | BufferStore (const BufferStore &)=delete |
| |
| | BufferStore (BufferStore &&)=delete |
| |
| BufferStore & | operator= (const BufferStore &)=delete |
| |
| BufferStore & | operator= (BufferStore &&)=delete |
| |
| virtual | ~BufferStore ()=default |
| |
| const std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_buffers () const |
| |
| std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_buffers () |
| |
| const TensorValueBase & | get_buffer (const std::string &name) const |
| | }@
|
| |
| TensorValueBase & | get_buffer (const std::string &name) |
| | Get a writable reference of a buffer.
|
| |
| | ParameterStore (Model *object) |
| |
| | ParameterStore (const ParameterStore &)=delete |
| |
| | ParameterStore (ParameterStore &&)=delete |
| |
| ParameterStore & | operator= (const ParameterStore &)=delete |
| |
| ParameterStore & | operator= (ParameterStore &&)=delete |
| |
| virtual | ~ParameterStore ()=default |
| |
| const std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_parameters () const |
| |
| std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_parameters () |
| |
| const TensorValueBase & | get_parameter (const std::string &name) const |
| | }@
|
| |
| TensorValueBase & | get_parameter (const std::string &name) |
| | Get a writable reference of a parameter.
|
| |
| void | set_parameter (const std::string &, const Tensor &) |
| | Set the value for a parameter.
|
| |
| void | set_parameters (const std::map< std::string, Tensor > &) |
| | Set values for parameters.
|
| |
| | VariableStore (Model *object) |
| |
| | VariableStore (const VariableStore &)=delete |
| |
| | VariableStore (VariableStore &&)=delete |
| |
| VariableStore & | operator= (const VariableStore &)=delete |
| |
| VariableStore & | operator= (VariableStore &&)=delete |
| |
| virtual | ~VariableStore ()=default |
| |
| LabeledAxis & | declare_axis (const std::string &name) |
| |
| const TensorOptions & | variable_options () const |
| | Current tensor options for variables.
|
| |
| LabeledAxis & | input_axis () |
| |
| const LabeledAxis & | input_axis () const |
| |
| LabeledAxis & | output_axis () |
| |
| const LabeledAxis & | output_axis () const |
| |
| VariableStorage & | input_variables () |
| |
| const VariableStorage & | input_variables () const |
| |
| VariableStorage & | output_variables () |
| |
| const VariableStorage & | output_variables () const |
| |
| VariableBase & | input_variable (const VariableName &) |
| |
| const VariableBase & | input_variable (const VariableName &) const |
| |
| VariableBase & | output_variable (const VariableName &) |
| |
| const VariableBase & | output_variable (const VariableName &) const |
| |
| virtual void | clear_derivatives () |
| |
| void | cache_derivative_sparsity () |
| |
| void | cache_second_derivative_sparsity () |
| | Cache sparsity of second derivatives.
|
| |
| const std::optional< DerivSparsity > & | derivative_sparsity () const |
| | Derivative sparsity.
|
| |
| const std::optional< SecDerivSparsity > & | second_derivative_sparsity () const |
| | Second derivative sparsity.
|
| |
| void | assign_input (const ValueMap &vals, bool assembly=false) |
| |
| void | assign_output (const ValueMap &vals, bool assembly=false) |
| |
| void | assign_output_derivatives (const DerivMap &derivs, bool assembly=false) |
| |
| ValueMap | collect_input (bool assembly=false) const |
| |
| ValueMap | collect_output (bool assembly=false) const |
| |
| DerivMap | collect_output_derivatives (bool assembly=false) const |
| |
| SecDerivMap | collect_output_second_derivatives (bool assembly=false) const |
| |
| void | set_input_intmd_sizes (const VariableName &, TensorShapeRef) |
| | Tag intermediate shapes for variables.
|
| |
| void | set_output_intmd_sizes (const VariableName &, TensorShapeRef) |
| |
| | NonlinearSystem (const NonlinearSystem &)=default |
| |
| | NonlinearSystem (NonlinearSystem &&) noexcept=default |
| |
| NonlinearSystem & | operator= (const NonlinearSystem &)=delete |
| |
| NonlinearSystem & | operator= (NonlinearSystem &&)=delete |
| |
| virtual | ~NonlinearSystem ()=default |
| |
| | NonlinearSystem (const OptionSet &options) |
| |
| virtual void | init_scaling (const Sol< false > &x, const bool verbose=false) |
| | Compute algebraic Jacobian-based automatic scaling following https://cs.stanford.edu/people/paulliu/files/cs517-project.pdf.
|
| |
| Res< true > | scale (const Res< false > &r) const |
| | Apply scaling to the residual.
|
| |
| Res< false > | unscale (const Res< true > &r) const |
| | Remove scaling to the residual.
|
| |
| Jac< true > | scale (const Jac< false > &J) const |
| | Apply scaling to the Jacobian.
|
| |
| Jac< false > | unscale (const Jac< true > &J) const |
| | Remove scaling to the Jacobian.
|
| |
| Sol< true > | scale (const Sol< false > &u) const |
| | Apply scaling to the solution.
|
| |
| Sol< false > | unscale (const Sol< true > &u) const |
| | Remove scaling to the solution.
|
| |
| void | set_guess (const Sol< true > &x) |
| | Set the current guess.
|
| |
| template<bool scaled> |
| Res< scaled > | residual () |
| | Assemble and return the residual.
|
| |
| template<bool scaled> |
| Res< scaled > | residual (const Sol< scaled > &x) |
| | Convenient shortcut to set the current guess, assemble and return the residual.
|
| |
| template<bool scaled> |
| Jac< scaled > | Jacobian () |
| | Assemble and return the Jacobian.
|
| |
| template<bool scaled> |
| Jac< scaled > | Jacobian (const Sol< scaled > &x) |
| | Convenient shortcut to set the current guess, assemble and return the Jacobian.
|
| |
| template<bool scaled> |
| std::tuple< Res< scaled >, Jac< scaled > > | residual_and_Jacobian () |
| | Assemble and return the residual and Jacobian.
|
| |
| template<bool scaled> |
| std::tuple< Res< scaled >, Jac< scaled > > | residual_and_Jacobian (const Sol< scaled > &x) |
| | Convenient shortcut to set the current guess, assemble and return the residual and Jacobian.
|
| |
| | DependencyDefinition ()=default |
| |
| | DependencyDefinition (DependencyDefinition &&)=delete |
| |
| | DependencyDefinition (const DependencyDefinition &)=delete |
| |
| DependencyDefinition & | operator= (const DependencyDefinition &)=delete |
| |
| DependencyDefinition & | operator= (DependencyDefinition &&)=delete |
| |
| virtual | ~DependencyDefinition ()=default |
| |
| | DiagnosticsInterface ()=delete |
| |
| | DiagnosticsInterface (NEML2Object *object) |
| |
| | DiagnosticsInterface (DiagnosticsInterface &&)=delete |
| |
| | DiagnosticsInterface (const DiagnosticsInterface &)=delete |
| |
| DiagnosticsInterface & | operator= (const DiagnosticsInterface &)=delete |
| |
| DiagnosticsInterface & | operator= (DiagnosticsInterface &&)=delete |
| |
| virtual | ~DiagnosticsInterface ()=default |
| |
| const NEML2Object & | object () const |
| | Get the object.
|
| |
|
| void | set_value (bool out, bool dout_din, bool d2out_din2) override |
| | The map between input -> output, and optionally its derivatives.
|
| |
| void | diagnostic_assert_state (const VariableBase &v) const |
| |
| void | diagnostic_assert_old_state (const VariableBase &v) const |
| |
| void | diagnostic_assert_force (const VariableBase &v) const |
| |
| void | diagnostic_assert_old_force (const VariableBase &v) const |
| |
| void | diagnostic_assert_residual (const VariableBase &v) const |
| |
| void | diagnostic_check_input_variable (const VariableBase &v) const |
| |
| void | diagnostic_check_output_variable (const VariableBase &v) const |
| |
| void | diagnose_nl_sys () const |
| | Additional diagnostics for a nonlinear system.
|
| |
| virtual void | link_input_variables () |
| |
| virtual void | link_input_variables (Model *submodel) |
| |
| virtual void | link_output_variables () |
| |
| virtual void | link_output_variables (Model *submodel) |
| |
| void | check_precision () const |
| | Check the current default precision and warn if it's not double precision.
|
| |
| virtual void | request_AD () |
| |
| void | forward (bool out, bool dout, bool d2out) |
| | Forward operator without jit.
|
| |
| template<typename T = Model, typename = typename std::enable_if_t<std::is_base_of_v<Model, T>>> |
| T & | register_model (const std::string &name, bool nonlinear=false, bool merge_input=true) |
| | Register a model that the current model may use during its evaluation.
|
| |
| void | assign_input_stack (jit::Stack &stack) |
| |
| jit::Stack | collect_input_stack () const |
| |
| void | set_guess (const Sol< false > &) override |
| | Set the unscaled current guess.
|
| |
| void | assemble (Res< false > *, Jac< false > *) override |
| | Compute the unscaled residual and Jacobian.
|
| |
| template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<Data, T>>> |
| T & | register_data (const std::string &name) |
| |
| virtual void | send_buffers_to (const TensorOptions &options) |
| | Send all buffers to options.
|
| |
| template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> |
| const T & | declare_buffer (const std::string &name, const T &rawval) |
| | Declare a buffer.
|
| |
| template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> |
| const T & | declare_buffer (const std::string &name, const TensorName< T > &tensorname) |
| | Declare a buffer.
|
| |
| template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> |
| const T & | declare_buffer (const std::string &name, const std::string &input_option_name) |
| | Declare a buffer.
|
| |
| void | assign_buffer_stack (jit::Stack &stack) |
| | Assign stack to buffers.
|
| |
| jit::Stack | collect_buffer_stack () const |
| | Collect stack from buffers.
|
| |
| virtual void | send_parameters_to (const TensorOptions &options) |
| | Send parameters to options.
|
| |
| template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> |
| const T & | declare_parameter (const std::string &name, const T &rawval) |
| | Declare a parameter.
|
| |
| template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> |
| const T & | declare_parameter (const std::string &name, const TensorName< T > &tensorname, bool allow_nonlinear) |
| | Declare a parameter.
|
| |
| template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> |
| const T & | declare_parameter (const std::string &name, const std::string &input_option_name, bool allow_nonlinear=false) |
| | Declare a parameter.
|
| |
| void | assign_parameter_stack (jit::Stack &stack) |
| | Assign stack to parameters.
|
| |
| jit::Stack | collect_parameter_stack () const |
| | Collect stack from parameters.
|
| |
| virtual void | send_variables_to (const TensorOptions &options) |
| | Send padding variables to options.
|
| |
| template<typename T > |
| const Variable< T > & | declare_input_variable (const char *name, TensorShapeRef dep_intmd_dims={}, bool allow_duplicate=false) |
| | Declare an input variable.
|
| |
| template<typename T > |
| const Variable< T > & | declare_input_variable (const VariableName &name, TensorShapeRef dep_intmd_dims={}, bool allow_duplicate=false) |
| | Declare an input variable.
|
| |
| template<typename T > |
| Variable< T > & | declare_output_variable (const char *name, TensorShapeRef dep_intmd_dims={}) |
| | Declare an output variable.
|
| |
| template<typename T > |
| Variable< T > & | declare_output_variable (const VariableName &name, TensorShapeRef dep_intmd_dims={}) |
| | Declare an output variable.
|
| |
| const VariableBase * | clone_input_variable (const VariableBase &var, const VariableName &new_name={}) |
| | Clone a variable and put it on the input axis.
|
| |
| VariableBase * | clone_output_variable (const VariableBase &var, const VariableName &new_name={}) |
| | Clone a variable and put it on the output axis.
|
| |
| void | assign_input_stack (jit::Stack &stack) |
| | Assign stack to input variables.
|
| |
| void | assign_output_stack (jit::Stack &stack, bool out, bool dout, bool d2out) |
| | Assign stack to output variables and derivatives.
|
| |
| jit::Stack | collect_input_stack () const |
| | Collect stack from input variables.
|
| |
| jit::Stack | collect_output_stack (bool out, bool dout, bool d2out) const |
| | Collect stack from output variables and derivatives.
|
| |