class_docstr: This layer initializes the neural network exchange correlation functional and
  the hybrid functional. It is then used to run the Kohn Sham iterations.
  
  Examples
  --------
  >>> import torch
  >>> from deepchem.feat.dft_data import DFTEntry
  >>> from deepchem.models.dft.dftxc import DFTXC
  >>> e_type = 'ie'
  >>> true_val= '0.53411947056'
  >>> systems = [{'moldesc': 'N 0 0 0',
  ...       'basis': '6-311++G(3df,3pd)',
  ...        'spin': '3'},
  ...       {'moldesc': 'N 0 0 0',
  ...       'basis': '6-311++G(3df,3pd)',
  ...       'charge': 1,
  ...        'spin': '2'}]
  >>> entry = DFTEntry.create(e_type, true_val, systems)
  >>> nnmodel = _construct_nn_model(input_size=2, hidden_size=10, n_layers=1,modeltype=1).to(torch.double)
  >>> model = DFTXC("lda_x", nnmodel)
  >>> output = model([entry])
  The 6-311++G(3df,3pd) basis for atomz 7 does not exist, but we will download it
  Downloaded to /usr/share/miniconda3/envs/deepchem/lib/python3.8/site-packages/dqc/api/.database/6-311ppg_3df_3pd_/07.gaussian94
class_docstr_tok: ["This","layer","initializes","the","neural","network","exchange","correlation","functional","and","the","hybrid","functional",".","It","is","then","used","to","run","the","Kohn","Sham","iterations",".","Examples","--","--","--","--",">",">",">","import","torch",">",">",">","from","deepchem.feat.dft_data","import","DFTEntry",">",">",">","from","deepchem.models.dft.dftxc","import","DFTXC",">",">",">","e_type","=","'ie'",">",">",">","true_val=","'","0.53411947056'",">",">",">","systems","=","[","{","'moldesc","'",":","'N","0","0","0","'",",","...","'basis","'",":","'","6-311++G","(","3df,3pd",")","'",",","...","'spin","'",":","'","3","'","}",",","...","{","'moldesc","'",":","'N","0","0","0","'",",","...","'basis","'",":","'","6-311++G","(","3df,3pd",")","'",",","...","'charge","'",":","1",",","...","'spin","'",":","'","2","'","}","]",">",">",">","entry","=","DFTEntry.create","(","e_type",",","true_val",",","systems",")",">",">",">","nnmodel","=","_construct_nn_model","(","input_size=2",",","hidden_size=10",",","n_layers=1",",","modeltype=1",")",".to","(","torch.double",")",">",">",">","model","=","DFTXC","(","``","lda_x","''",",","nnmodel",")",">",">",">","output","=","model","(","[","entry","]",")","The","6-311++G","(","3df,3pd",")","basis","for","atomz","7","does","not","exist",",","but","we","will","download","it","Downloaded","to","\/usr\/share\/miniconda3\/envs\/deepchem\/lib\/python3.8\/site-packages\/dqc\/api\/.database\/6-311ppg_3df_3pd_\/07.gaussian94"]
docstr: Parameters
  ----------
  xcstr: str
      The choice of xc to use. Some of the commonly used ones are:
      lda_x, lda_c_pw, lda_c_ow, lda_c_pz, lda_xc_lp_a, lda_xc_lp_b.
  nnmodel: torch.nn.Module
      the PyTorch model implementing the calculation
  
  Notes
  -----
  It is not necessary to use the default method(_construct_nn_model) with the XCModel.
docstr_tok: ["Parameters","--","--","--","--","--","xcstr",":","str","The","choice","of","xc","to","use",".","Some","of","the","commonly","used","ones","are",":","lda_x",",","lda_c_pw",",","lda_c_ow",",","lda_c_pz",",","lda_xc_lp_a",",","lda_xc_lp_b",".","nnmodel",":","torch.nn.Module","the","PyTorch","model","implementing","the","calculation","Notes","--","--","-","It","is","not","necessary","to","use","the","default","method","(","_construct_nn_model",")","with","the","XCModel","."]
code: def __init__(self, xcstr: str, nnmodel: torch.nn.Module):
      """
      Parameters
      ----------
      xcstr: str
          The choice of xc to use. Some of the commonly used ones are:
          lda_x, lda_c_pw, lda_c_ow, lda_c_pz, lda_xc_lp_a, lda_xc_lp_b.
      nnmodel: torch.nn.Module
          the PyTorch model implementing the calculation
  
      Notes
      -----
      It is not necessary to use the default method(_construct_nn_model) with the XCModel.
      """
      super(DFTXC, self).__init__()
      self.xcstr = xcstr
      self.nnmodel = nnmodel
  
file_path: deepchem/deepchem/models/dft/dftxc.py
imports: from deepchem.models.dft.scf import XCNNSCF
  import torch
  from deepchem.models.dft.nnxc import HybridXC
  from deepchem.models.losses import Loss, L2Loss
  from deepchem.models.torch_models.torch_model import TorchModel
  from typing import Tuple, Optional, List, Any
  import numpy
label_desc: Use image node_id 1 to create a new DFTXC object from inherited base classes: torch.nn with example: obj = DFTXC(xcstr, nnmodel)