MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
tiledbasisset.hpp
1//
2// tiledbasisset.hpp
3//
4// Copyright (C) 2013 Drew Lewis
5//
6// Authors: Drew Lewis
7// Maintainer: Drew Lewis and Edward Valeev
8//
9// This file is part of the MPQC Toolkit.
10//
11// The MPQC Toolkit is free software; you can redistribute it and/or modify
12// it under the terms of the GNU Library General Public License as published by
13// the Free Software Foundation; either version 2, or (at your option)
14// any later version.
15//
16// The MPQC Toolkit is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU Library General Public License for more details.
20//
21// You should have received a copy of the GNU Library General Public License
22// along with the MPQC Toolkit; see the file COPYING.LIB. If not, write to
23// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24//
25// The U.S. Government is granted a limited license as per AL 91-7.
26//
27
28#ifndef CHEMISTRY_QC_BASIS_TILEDBASISSET_HPP
29#define CHEMISTRY_QC_BASIS_TILEDBASISSET_HPP
30
31#include <tiledarray.h>
32
33#include "basis.h"
34#include "gaussbas.h"
35#include <chemistry/molecule/atom.h>
36#include <chemistry/molecule/molecule.h>
37
38#include <boost/foreach.hpp>
39#include "shellorder.hpp"
40#include "kcluster.hpp"
41
42namespace mpqc {
43namespace TA{
44
45 // TODO add reference for k clustering
51
52 public:
55 typedef ShellOrder::ShellRange ShellRange;
56
76
81 size_t ntiles = 1);
82
87 TiledArray::TiledRange1 trange1() const;
88
90
92
94 virtual void print(std::ostream& = sc::ExEnv::out0()) const override;
95
96 private:
97 std::size_t ntiles_;
98 ShellRange SRange_;
99
100 static std::string converted_name(const std::string& name);
101
102 }; // class TiledBasisSet
103
104} // namespace TA
105} // namespace mpqc
106
107#endif /* CHEMISTRY_QC_BASIS_TILEDBASISSET_HPP */
std::vector< std::size_t > ShellRange
Each element represents the shell a new tile starts on.
Definition shellorder.hpp:55
TiledBasisSet is a GaussianBasisSet in which basis functions/shells are grouped into tiles ("blocks")...
Definition tiledbasisset.hpp:50
TiledArray::TiledRange1 trange1() const
Returns the tiled range object describing the tiling of basis functions in this basis.
TiledBasisSet(const sc::Ref< sc::GaussianBasisSet > &bs, size_t ntiles=1)
Constructs a TiledBasisSet from a sc::GaussianBasisSet object.
TiledBasisSet(const sc::Ref< sc::KeyVal > &keyval)
Constructs a TiledBasisSet from a sc::Keyval object.
virtual void print(std::ostream &=sc::ExEnv::out0()) const override
Print a detailed description of the basis set.
void save_data_state(sc::StateOut &s)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
static std::ostream & out0()
Return an ostream that writes from node 0.
Shell is a GaussianShell that is part of GaussianBasisSet, i.e. has a center on which it's centered.
Definition gaussbas.h:149
The GaussianBasisSet class is used describe a basis set composed of atomic gaussian orbitals.
Definition gaussbas.h:145
const std::string & name() const
Return the name of the basis set (is nonnull only if keyword "name" was provided)
Definition gaussbas.h:482
A template class that maintains references counts.
Definition ref.h:361
Restores fundamental and user-defined types from images created with StateOut.
Definition statein.h:79
Serializes fundamental and user-defined types.
Definition stateout.h:71
Contains new MPQC code since version 3.
Definition integralenginepool.hpp:37

Generated at Wed Sep 25 2024 02:45:29 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.