class_docstr: Data structure that contains local information about density profiles.
  Data structure used as a umbrella class for density profiles and the
  derivative of the potential w.r.t. density profiles.
  
  Examples
  --------
  >>> import torch
  >>> from deepchem.utils.dft_utils import ValGrad
  >>> dens = torch.ones(1)
  >>> grad = torch.zeros(1)
  >>> lapl = torch.ones(1)
  >>> kin = torch.ones(1)
  >>> vg = ValGrad(value=dens, grad=grad, lapl=lapl, kin=kin)
  >>> vg + vg
  ValGrad(value=tensor([2.]), grad=tensor([0.]), lapl=tensor([2.]), kin=tensor([2.]))
  >>> vg * 5
  ValGrad(value=tensor([5.]), grad=tensor([0.]), lapl=tensor([5.]), kin=tensor([5.]))
docstr: Add two ValGrad objects together.
docstr_tok: ["Add","two","ValGrad","objects","together","."]
code: def __add__(self, b):
      """Add two ValGrad objects together."""
      return ValGrad(
          value=self.value + b.value,
          grad=self.grad + b.grad if self.grad is not None else None,
          lapl=self.lapl + b.lapl if self.lapl is not None else None,
          kin=self.kin + b.kin if self.kin is not None else None,
      )
  
imports: from typing import Union, TypeVar, Generic, Optional, Callable, List, Dict
  from dataclasses import dataclass
  import torch
  import numpy
  from deepchem.utils import gaussian_integral
label_desc: Use image node_id 2 for calling the ValGrad obj's underlying member method code with example usage: obj.__add__(b) and returns: ValGrad