Skip to content

Commit

Permalink
Release 3.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
reiher-research-group committed Dec 15, 2021
1 parent 1d798e5 commit 387e56e
Show file tree
Hide file tree
Showing 395 changed files with 88,616 additions and 25,225 deletions.
103 changes: 103 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
Language: Cpp
# BasedOnStyle: Google
# Reiher Group, SCINE subgroup
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlinesLeft: true
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
FixNamespaceComments: true
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeBlocks: Merge
IncludeCategories:
- Regex: '^".*\.h"'
Priority: 1
- Regex: '^".*'
Priority: 2
- Regex: '^<.*\.h>'
Priority: 3
- Regex: '^<.*'
Priority: 4
- Regex: '.*'
Priority: 5
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentPPDirectives: AfterHash
IndentWidth: 2
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
PenaltyBreakBeforeFirstCallParameter: 20
PenaltyBreakComment: 5
PenaltyBreakFirstLessLess: 3
PenaltyBreakString: 100
PenaltyExcessCharacter: 2
PenaltyReturnTypeOnItsOwnLine: 40
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 8
UseTab: Never
...

66 changes: 66 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
# Remarks about the checks:
# * modernize-use-equals-delete: removed to avoid warnings generated in TEST_F macro from google-test
# * clang-analyzer-cplusplus.NewDelete: removed to avoid warnings generated in TEST_F macro from google-test
# * clang-analyzer-cplusplus.NewDeleteLeaks: removed to avoid warnings generated in TEST_F macro from google-test
# * clang-analyzer-optin.cplusplus.VirtualCall: removed to avoid warnings generated in google-test
# * cppcoreguidelines-slicing: removed because of PropertyData in Delib
# * clang-analyzer-core.NullDereference: removed because of warning in clang's headers
Checks: '-*,
bugprone-*,
clang-analyzer-*,
-clang-analyzer-cplusplus.NewDelete,
-clang-analyzer-cplusplus.NewDeleteLeaks,
-clang-analyzer-optin.cplusplus.VirtualCall,
-clang-analyzer-core.NullDereference,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-owning-memory,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-cppcoreguidelines-pro-bounds-constant-array-index,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
-cppcoreguidelines-pro-type-const-cast,
-cppcoreguidelines-pro-type-member-init,
-cppcoreguidelines-pro-type-vararg,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-slicing,
-cppcoreguidelines-non-private-member-variables-in-classes,
misc-*,
-misc-non-private-member-variables-in-classes,
modernize-*,
-modernize-use-equals-delete,
-modernize-use-trailing-return-type,
performance-*,
portability-*,
readability-*,
-readability-magic-numbers'
#HeaderFilterRegex: './src/*'
AnalyzeTemporaryDtors: false
FormatStyle: none
CheckOptions:
- key: google-readability-braces-around-statements.ShortStatementLines
value: '1'
- key: google-readability-function-size.StatementThreshold
value: '800'
- key: google-readability-namespace-comments.ShortNamespaceLines
value: '10'
- key: google-readability-namespace-comments.SpacesBeforeComments
value: '2'
- key: modernize-loop-convert.MaxCopySize
value: '16'
- key: modernize-loop-convert.MinConfidence
value: reasonable
- key: modernize-loop-convert.NamingStyle
value: CamelCase
- key: modernize-pass-by-value.IncludeStyle
value: llvm
- key: modernize-replace-auto-ptr.IncludeStyle
value: llvm
- key: modernize-use-nullptr.NullMacros
value: 'NULL'
- key: readability-implicit-bool-conversion.AllowPointerConditions # Do not complain for "if (x)" when x is a pointer
value: 1
- key: performance-move-const-arg.CheckTriviallyCopyableMove # Do not complain on "std::move(x)" if x is trivially copyable
value: 0
...

18 changes: 18 additions & 0 deletions .conan_test_package/conanfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
__copyright__ = """This file is part of SCINE Utilities.
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory of Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
"""

from conans import ConanFile


class TestPackageConan(ConanFile):
def build(self):
pass

def test(self):
if self.options["scine_sparrow"].python:
self.output.info("Trying to import 'scine_sparrow'")
import scine_sparrow
self.output.info("Import worked")
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "cmake"]
path = cmake
url = https://github.com/qcscine/cmake.git
[submodule "dev"]
path = dev
url = https://github.com/qcscine/development-utils.git
41 changes: 0 additions & 41 deletions CHANGELOG.md

This file was deleted.

71 changes: 71 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
Changelog
=========

Release 3.0.0
-------------

- Excited-state calculations with NDDO-CIS and TD-DFTB
- Added a binary for the calculation of IR and UV/Vis spectra of trajectories
- Orbital steering calculations possible with binary (using a single system, single
point) and Python bindings (can handle an individual system and systems along a
trajectory)
- Can now set symmetry number for thermodynamics calculation
- Added density matrix RMSD SCF convergence check
- Calculate atomic second derivatives
- Removed Sparrow-specific Python bindings in favour of the more general ``Core::Calculator`` Python bindings
- Added Python bindings for excited-state calculators; see Utilities for more
infos on them
- Added patching functionality in DFTB embedded parameters, i.e. if the znorg-0-1
parameter set is chosen, then parameters are automatically sorted out between
znorg-0-1 and mio-0-1 (patch parameters available: znorg-0-1, hyb-0-2)
- Fixed bug causing an instability in the calculation of the gradients (and Hessian matrix) in DFTBx
- Added ``conanfile.py`` for easier compilation and dependency-handling by Conan
- Made Sparrow relocatable by embedding the parameters in the compiled program;
it is still possible to give parameter files externally
- Multiple bug fixes and stability fixes
- Improved testing

Release 2.0.1
-------------

- Corrected bug in setting the element collection in Python bindings
- Added missing include statement that prevented compilation on GCC 10.0.1

Release 2.0.0
-------------

- Calculate thermochemical properties
- Explicitly symmetrized Hessians
- Generation of molden input files for molecular orbital visualization
- General stability/performance improvements
- Access to the calculations and molden file generations also through SCINE Core::Calculator Python bindings
- Addition of 3ob-3-1 parameters sets for DFTB. Spin constants are extracted from
Christof Köhler, Berücksichtigung von Spinpolarisationseffekten in einem dichtefunktionalbasierten Ansatz,
PhD thesis, Departement Physik der Fakultät für Naturwissenschaften an der Universität Paderborn, 2004
- Addition of automatic linking to MKL/LAPACK/BLAS through Eigen
- Various bugfixes and improvements

Release 1.0.1
-------------

- Hotfix to allow compilation on OSX using Clang

Release 1.0.0
-------------

Initial release with the following features:

- Calculate electronic energies, nuclear gradients, and Hessians
- Calculate bond orders
- Restricted and unrestricted formalisms are implemented
- The following methods are available:
- MNDO
- AM1
- RM1
- PM3
- PM6
- non-SCC DFTB (DFTB0)
- DFTB2
- DFTB3
- All functionality can be accessed through a standalone binary
- Parallelized with OpenMP
7 changes: 5 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ cmake_minimum_required(VERSION 3.9)
# tree must then provide a properly namespaced target with the same name as
# your project.
project(Sparrow
VERSION 2.0.0
VERSION 3.0.0
DESCRIPTION "Library for fast and agile quantum chemical calculations with semiempirical methods."
)

# Set the module path for universal cmake files inclusion
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/dev/cmake)

# Component setup
include(ComponentSetup)
Expand All @@ -23,3 +23,6 @@ endif()

# Subdirectories
add_subdirectory(src)

# Documentation
scine_component_documentation(UtilsOSDocumentation)
4 changes: 1 addition & 3 deletions CONTRIBUTING.md → CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Contribution Process
The development for this code is done in a private repository maintained by the
Reiher Research Group. GitHub is only used for the official releases.

If you would like to contribute a larger change, please write to <scine@phys.chem.ethz.ch>.
If you would like to contribute a larger change, please write to scine@phys.chem.ethz.ch.
For smaller changes, you can create a pull request on GitHub. If we agree with
the changes, a member of the Reiher Research Group will include them in our
development code. Of course, we will give proper acknowledgment for any external
Expand All @@ -18,14 +18,12 @@ and/or issues on GitHub.
Please note that contributing a small change does in no way mean that you will
be added to the author list of a future paper and/or Zenodo entry!


Main Contributors
-----------------

Almost all contributions to SCINE in general and this repository in specific come
from members of the Reiher research group.


Further Contributors
--------------------

Expand Down
32 changes: 16 additions & 16 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group
Copyright ETH Zurich, Laboratory of Physical Chemistry, Reiher Group

Redistribution and use in source and binary forms, with or without modification,
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Loading

0 comments on commit 387e56e

Please sign in to comment.