class_docstr: Class that provides free-parameterization of orthogonal orbitals.
  
  Examples
  --------
  >>> import torch
  >>> from deepchem.models.dft import BaseOrbParams
  >>> class MyOrbParams(BaseOrbParams):
  ...     @staticmethod
  ...     def params2orb(params, coeffs, with_penalty):
  ...         return params, coeffs
  ...     @staticmethod
  ...     def orb2params(orb):
  ...         return orb, torch.tensor([0], dtype=orb.dtype, device=orb.device)
  >>> params = torch.randn(3, 4, 5)
  >>> coeffs = torch.randn(3, 4, 5)
  >>> with_penalty = 0.1
  >>> orb, penalty = MyOrbParams.params2orb(params, coeffs, with_penalty)
  >>> params2, coeffs2 = MyOrbParams.orb2params(orb)
  >>> torch.allclose(params, params2)
  True
docstr: Convert the parameters & coefficients to the orthogonal orbitals.
  ``params`` is the tensor to be optimized in variational method, while
  ``coeffs`` is a tensor that is needed to get the orbital, but it is not
  optimized in the variational method.
  
  Parameters
  ----------
  params: torch.Tensor
      The free parameters to be optimized.
  coeffs: torch.Tensor
      The coefficients to get the orthogonal orbitals.
  with_penalty: float (default 0.0)
      If not 0.0, return the penalty term for the free parameters.
  
  Returns
  -------
  orb: torch.Tensor
      The orthogonal orbitals.
  penalty: torch.Tensor
      The penalty term for the free parameters. If ``with_penalty`` is 0.0,
      this is not returned.
docstr_tok: ["Convert","the","parameters","&","coefficients","to","the","orthogonal","orbitals",".","``","params","``","is","the","tensor","to","be","optimized","in","variational","method",",","while","``","coeffs","``","is","a","tensor","that","is","needed","to","get","the","orbital",",","but","it","is","not","optimized","in","the","variational","method",".","Parameters","--","--","--","--","--","params",":","torch.Tensor","The","free","parameters","to","be","optimized",".","coeffs",":","torch.Tensor","The","coefficients","to","get","the","orthogonal","orbitals",".","with_penalty",":","float","(","default","0.0",")","If","not","0.0",",","return","the","penalty","term","for","the","free","parameters",".","Returns","--","--","--","-","orb",":","torch.Tensor","The","orthogonal","orbitals",".","penalty",":","torch.Tensor","The","penalty","term","for","the","free","parameters",".","If","``","with_penalty","``","is","0.0",",","this","is","not","returned","."]
code: def params2orb(  # type: ignore[empty-body]
      params: torch.Tensor,
      coeffs: torch.Tensor,
      with_penalty: float = 0.0,
  ) -> List[torch.Tensor]:
      """
      Convert the parameters & coefficients to the orthogonal orbitals.
      ``params`` is the tensor to be optimized in variational method, while
      ``coeffs`` is a tensor that is needed to get the orbital, but it is not
      optimized in the variational method.
  
      Parameters
      ----------
      params: torch.Tensor
          The free parameters to be optimized.
      coeffs: torch.Tensor
          The coefficients to get the orthogonal orbitals.
      with_penalty: float (default 0.0)
          If not 0.0, return the penalty term for the free parameters.
  
      Returns
      -------
      orb: torch.Tensor
          The orthogonal orbitals.
      penalty: torch.Tensor
          The penalty term for the free parameters. If ``with_penalty`` is 0.0,
          this is not returned.
  
      """
      pass
  
file_path: deepchem/deepchem/models/dft/hamilton/orbparams.py
imports: from typing import List
  import torch
label_desc: Use image node_id 1 for calling the BaseOrbParams obj's underlying member method code with example usage: obj.params2orb(params, coeffs, with_penalty) without return types