This article provides a detailed guide for researchers and scientists encountering the 'ERROR **** CHOLSK **** BASIS SET LINEARLY DEPENDENT' in CRYSTAL software.
This article provides a detailed guide for researchers and scientists encountering the 'ERROR **** CHOLSK **** BASIS SET LINEARLY DEPENDENT' in CRYSTAL software. It covers the foundational causes of basis set linear dependence, explores practical methodological solutions like the LDREMO keyword and manual basis set modification, and offers advanced troubleshooting for subsequent errors such as 'ILA DIMENSION EXCEEDED'. The guide also presents a framework for validating fixes and comparing alternative computational strategies, including functional and basis set selection, to ensure robust and accurate quantum chemical calculations for materials and drug development.
Q: What does "linearly dependent" mean in simple terms? A: A set of vectors is linearly dependent if at least one vector in the set can be written as a linear combination of the others. In other words, the set contains redundant information. For a basis set in computational chemistry, which is a set of functions used to represent molecular orbitals, this means that at least one function is not adding new information to the set [1] [2].
Q: Why is linear dependence a problem in computational calculations like those in CRYSTAL?
A: Quantum chemistry software solves for molecular orbitals by computing matrices (like the overlap matrix) and solving generalized eigenvalue problems. These mathematical operations require the basis functions to be linearly independent. If they are dependent, these matrices become singular (non-invertible), and the calculation fails, often with errors like ERROR CHOLSK BASIS SET LINEARARLY DEPENDENT [3].
Q: What typically causes linear dependence in a basis set? A: The primary cause is the use of diffuse functions, which are basis functions with very small exponents that describe electrons far from the nucleus. When atoms are close together in a molecule or crystal, these "tails" of the diffuse functions on different atoms can become very similar, making them nearly identical and thus linearly dependent [3].
Q: How can I fix a linear dependence error in my CRYSTAL calculation? A: You have two main strategic approaches, as highlighted in user forum discussions [3]:
LDREMO keyword: This tells CRYSTAL to automatically identify and remove functions that cause linear dependence. You specify a tolerance (e.g., LDREMO 4), and functions corresponding to eigenvalues of the overlap matrix below this tolerance (in units of 10⁻⁵) are removed.In linear algebra, a basis is a set of elements (vectors) in a vector space that are linearly independent and span the space [1]. "Spanning" means every vector in the space can be written as a unique linear combination of the basis vectors [4].
Linear independence is formally defined for a set of vectors {v₁, v₂, ..., vₙ} as follows: the only solution to the equation c₁v₁ + c₂v₂ + ... + cₙvₙ = 0 (where the c terms are scalars) is the trivial solution where all scalars c₁ = c₂ = ... = cₙ = 0 [1] [5] [4]. If another solution exists where at least one scalar is not zero, the set is linearly dependent.
In computational chemistry, a basis set is a set of mathematical functions (the "vectors") used to construct the molecular orbitals [2]. The atomic orbitals (e.g., 1s, 2s, 2p) of the atoms in a system are typically used as these basis functions. For accurate results, modern basis sets often include multiple functions to describe each valence orbital (split-valence), plus polarization functions (e.g., d-orbitals on carbon) to describe asymmetry, and diffuse functions (with small exponents) to describe electrons far from the nucleus [2].
The following flowchart outlines the logical process that leads to the error in a computational run, and the primary solutions available.
The table below summarizes the core concepts related to this error and the standard solutions available to researchers.
| Concept / Solution | Description | Function / Relevance |
|---|---|---|
| Linear Dependence | A vector is a linear combination of others; creates redundancy [1] [4]. | Core Problem: Makes key matrices non-invertible, halting calculations. |
| Diffuse Functions | Basis functions with small exponents for "far-away" electrons [2]. | Primary Cause: Their spatial overlap in crystals creates dependence [3]. |
| Overlap Matrix | A matrix of integrals measuring how much basis functions overlap in space. | Diagnostic Tool: Its singularity triggers the error. CRYSTAL diagonalizes it to find dependent functions. |
LDREMO Keyword |
An input keyword for CRYSTAL that triggers automatic removal of dependent functions [3]. | Primary Fix: Systematically removes functions based on a user-defined tolerance. |
| B973C / mTZVP | A composite functional and its matched molecular basis set [3]. | Contextual Cause: Not designed for bulk materials; can trigger this error in solids. |
When you encounter this error in your CRYSTAL calculations, follow this structured protocol to diagnose and resolve the issue.
1. Initial Assessment & Input Check
2. Implementing a Solution Strategy
Strategy A: Use the LDREMO Keyword (Quick Fix)
SHRINK keyword), add the line LDREMO <integer>.LDREMO 4. This instructs the code to remove basis functions corresponding to eigenvalues of the overlap matrix below 4 × 10⁻⁵ [3].ILA DIMENSION EXCEEDED error, you will need to increase the ILASIZE parameter as per the manual [3].Strategy B: Manually Prune the Basis Set (Advanced)
Strategy C: Change Functional & Basis Set (Recommended Long-Term Solution)
By understanding the mathematical principles and applying this structured troubleshooting guide, researchers can effectively overcome the "basis set linearly dependent" error and proceed with their computational investigations.
What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean? This error occurs when the basis set used in your CRYSTAL calculation is no longer linearly independent. In mathematical terms, the overlap matrix between basis functions becomes singular or very ill-conditioned, which prevents the successful completion of the Cholesky decomposition, a factorization method required for solving the system [6]. In practice, it means that at least one basis function can be expressed as a linear combination of the others, making the calculation unstable [7].
Why did my calculation work with the same basis set in a different system but fail in this one?
The linear dependence of a basis set is highly sensitive to the specific atomic positions in your structure [3]. Even if a basis set like mTZVP works for one molecular or crystal system, it can fail for another if the geometry brings atoms (and their diffuse orbitals) closer together. This reduced distance increases the overlap between orbitals, which can trigger linear dependence issues that weren't present in other structures [3].
Is it safe to manually remove diffuse functions from a built-in basis set like mTZVP?
While manually removing basis functions with small exponents (e.g., below 0.1) is a common technical workaround, it is not recommended for built-in, optimized basis sets like mTZVP when used with specific functionals like B973C [3]. These are often composite methods where the functional and basis set were developed together. Modifying the basis set can introduce uncontrolled errors and invalidate the method's parameterization. It is better to use the LDREMO keyword or select a different functional and basis set pair that is more suitable for bulk materials [3].
What is the difference between the LDREMO keyword and manually modifying the basis?
The LDREMO keyword is an automated and systematic approach to handling linear dependence. It diagonalizes the overlap matrix in reciprocal space and removes basis functions corresponding to eigenvalues below a defined threshold before the SCF cycle begins [3]. Manual modification is a permanent, preemptive change to the basis set file. LDREMO is generally preferred as it makes minimal, targeted adjustments specific to the problem at hand in your current calculation.
This guide will help you resolve the "BASIS SET LINEARLY DEPENDENT" error in CRYSTAL calculations.
Protocol 1: Using the LDREMO Keyword This protocol uses the built-in keyword to handle linear dependencies automatically.
Modify Input File: In the third section of your CRYSTAL input file (below the SHRINK keyword), add the following line:
LDREMO
<integer>
The <integer> value is a threshold parameter. Start with a value of 4 (which corresponds to an eigenvalue cutoff of 4 × 10⁻⁵) and increase it if the error persists [3].
Run in Serial Mode: Calculations using LDREMO must be run with a single process (serial mode) to see the printed information about which basis functions are excluded. Parallel execution may abort without useful error messages [3].
Check Output: The output file will list the basis functions that were removed. If you encounter an ILA DIMENSION EXCEEDED error after using LDREMO, consult the CRYSTAL manual regarding the ILASIZE keyword to increase the allocated memory [3].
Protocol 2: Functional and Basis Set Replacement
If the B973C functional and mTZVP basis set are not suitable for your system (e.g., for bulk materials), follow this protocol to change methods.
Consult the Manual: Review the CRYSTAL user manual (e.g., page 161, as noted in one case) for warnings or recommendations about the functional you are using [3].
Select a New Pair: Choose a functional and basis set known to be robust for solid-state and periodic systems. Common alternatives include PBE or B3LYP with basis sets like pob-TZVP or other crystal-optimized sets.
Validate: Test the new functional and basis set on a smaller, related system to ensure it produces physically reasonable results before proceeding to your larger calculation.
The following table details key computational "reagents" and their functions relevant to this issue.
| Research Reagent | Function & Explanation |
|---|---|
| Basis Set (e.g., mTZVP) | A set of mathematical functions (orbitals) that describe the electron distribution around atoms. Diffuse functions in this set have small exponents and spread far from the nucleus, which are often the cause of linear dependence [3]. |
| LDREMO Keyword | A computational reagent that systematically removes linearly dependent basis functions by diagonalizing the overlap matrix and applying a cutoff, stabilizing the calculation [3]. |
| Cholesky Decomposition | A key numerical algorithm (matrix factorization) used to solve the system of equations in the calculation. It requires a positive-definite matrix and fails when linear dependencies are present [6] [8]. |
| Overlap Matrix | A matrix whose elements represent the spatial overlap between different basis functions in the system. Its eigenvalues indicate linear independence; near-zero eigenvalues signal problems [3] [7]. |
| Threshold Parameter (Integer) | The LDREMO parameter acts as a tolerance or cutoff. It determines the sensitivity for detecting and removing dependent functions (eigenvalues < integer × 10⁻⁵) [3]. |
This guide addresses the specific "CHOLSK" linear dependence error encountered by researchers using the CRYSTAL software for computational chemistry and material science studies.
The ERROR CHOLSK BASIS SET LINEARLY DEPENDENT occurs when the basis set used in a CRYSTAL calculation is mathematically linearly dependent. This means that one or more basis functions can be expressed as a linear combination of other functions in the set, making the overlap matrix singular and preventing the calculation from proceeding [3].
The error is frequently triggered by the physical arrangement of atoms in your system [3].
mTZVP which contain diffuse functions (functions with small exponents), are particularly susceptible. When atoms in the crystal structure are very close together, their diffuse orbitals can overlap excessively. This significant overlap makes the system of basis functions linearly dependent, even if the same basis set works for other geometries where atoms are farther apart [3].The following workflow provides a systematic method for diagnosing and resolving this error. The corresponding visual guide is presented in Figure 1.
Figure 1: A logical workflow for troubleshooting the "CHOLSK" linear dependence error in CRYSTAL.
Step-by-Step Instructions:
LDREMO Keyword:
LDREMO in the third section (below the SHRINK keyword).LDREMO <integer>, where the integer is a threshold value (e.g., LDREMO 4). The code will remove basis functions corresponding to eigenvalues of the overlap matrix below <integer> * 10^-5 [3].LDREMO leads to an ILASIZE dimension error, you may need to increase the ILASIZE parameter as described in the CRYSTAL user manual (page 117) [3].0.1) from your basis set, as these diffuse functions are often the primary cause [3].B973C) and basis set (e.g., mTZVP) are composite methods primarily developed for molecular systems and molecular crystals. They may not be optimal for all bulk materials [3].Built-in basis sets, while optimized, are often molecular and contain diffuse functions with small exponents. These functions are highly sensitive to the specific atomic geometry. A structure with atoms in closer proximity than those the set was tested on can easily trigger linear dependence, even if the same set worked in other calculations [3].
The ERROR CLASSS ILA DIMENSION EXCEEDED - INCREASE ILASIZE 6000 indicates a separate issue related to the size of your system and the internal memory allocation of CRYSTAL. To resolve this, you must increase the ILASIZE parameter as specified in the CRYSTAL user manual (page 117) [3].
Output from parallel calculations can sometimes obscure error messages. To see the full diagnostic output, including information about which basis functions are being excluded by LDREMO, you must run your calculation in serial mode (using a single process) [3].
The table below lists key computational "reagents" relevant to fixing this error, their functions, and associated considerations.
| Research Reagent | Function/Description | Error-Specific Notes |
|---|---|---|
| B973C Functional | A composite method with built-in corrections [3]. | Primarily designed for molecular systems; can trigger errors in bulk materials [3]. |
| mTZVP Basis Set | A molecular triple-zeta valence basis set with polarization functions [3]. | Contains diffuse orbitals that can cause linear dependence in dense geometries [3]. |
LDREMO Keyword |
A CRYSTAL input keyword that automatically removes linearly dependent basis functions [3]. | Critical for diagnosing/fixing this error. Must be used in serial execution for verbose output [3]. |
ILASIZE Keyword |
A CRYSTAL input parameter that controls internal memory allocation [3]. | May need to be increased if LDREMO is used on large systems and triggers an "ILA DIMENSION" error [3]. |
This guide provides targeted solutions for researchers encountering a linear dependence error when using the B973C functional with the mTZVP basis set in computational chemistry software like CRYSTAL.
1. Understanding the Error and Its Primary Cause
A "CHOLSK BASIS SET LINEARLY DEPENDENT" error indicates that the basis functions used in the calculation are not mathematically independent. The B973C functional is a composite method explicitly designed for use with the mTZVP basis set [9]. Despite this, the error occurs because the mTZVP basis set is a molecular basis set that contains diffuse functions with small exponents. In systems where atoms are close together, these diffuse orbitals can overlap significantly, leading to linear dependence in the basis set [3].
2. Systematic Troubleshooting Procedure
Follow the workflow below to diagnose and resolve the linear dependence error.
3. Detailed Solution Protocols
Solution A: Using the LDREMO Keyword
The LDREMO keyword systematically removes linearly dependent functions by diagonalizing the overlap matrix in reciprocal space. Functions with eigenvalues below a defined threshold are excluded [3].
SHRINK keyword), add the line: LDREMO4.LDREMO when running in parallel [3].Solution B: Increasing the ILASIZE Parameter
Applying the LDREMO fix can sometimes reveal another underlying limitation of the system size, resulting in an "ILA DIMENSION EXCEEDED" error [3].
LDREMO, you need to increase the allocated memory.ILASIZE keyword.Solution C: Methodological Re-evaluation (Recommended)
The B973C functional and mTZVP basis set were primarily developed for molecular systems and molecular crystals, not for bulk materials [3]. Using them outside their intended scope can lead to persistent issues.
4. Solution Comparison Table
| Solution | Key Action | Primary Use Case | Key Limitation |
|---|---|---|---|
| Using LDREMO | Add LDREMO <integer> to input |
Linear dependence from diffuse functions | Only works in serial execution mode [3] |
| Increasing ILASIZE | Add ILASIZE <value> to input |
Follow-up error after applying LDREMO | Requires manual tuning; indicates a large system [3] |
| Method Re-evaluation | Change functional/basis set | System is outside B973C/mTZVP intended scope | Requires benchmarking a new method for your system [3] |
Q1: Why am I getting a linear dependence error with a built-in, recommended basis set? Even optimized, built-in basis sets can be prone to linear dependence. The mTZVP basis set includes diffuse functions (orbitals with small exponents). In certain geometries where atoms are close together, these functions can overlap excessively, causing the linear dependence error. It is a problem of the system's geometry in combination with the basis set, not necessarily a fault of the basis set itself [3].
Q2: Is it safe to manually remove diffuse functions from the mTZVP basis set to fix this?
It is not recommended. The B973C functional is a composite method parametrically matched to the mTZVP basis set. Modifying the basis set breaks this designed relationship and can introduce significant, unpredictable errors into your calculation. Using the LDREMO keyword is a more systematic and controlled approach [3].
Q3: The calculation aborts in parallel mode with no error message. How can I diagnose it?
The LDREMO keyword and its diagnostic output currently only function in serial mode. To properly diagnose and overcome the linear dependence error, you must run your job in serial mode on a single process. Once the issue is resolved, you may attempt to run production calculations in parallel [3].
| Item | Function in the Context of B973C/mTZVP |
|---|---|
| B973C Functional | A composite density functional theory (DFT) method that includes built-in corrections, parametrized specifically for use with the mTZVP basis set [3]. |
| mTZVP Basis Set | A modified triple-zeta valence polarization basis set. It provides a flexible description of electron orbitals but contains diffuse functions that can cause linear dependence in condensed systems [3] [9]. |
| LDREMO Keyword | A computational "reagent" that algorithmically identifies and removes linearly dependent basis functions during the setup phase of a CRYSTAL calculation [3]. |
| ILASIZE Keyword | A parameter that controls the allocation of memory for certain linear algebra operations, which may need to be increased for large systems or when using the LDREMO fix [3]. |
| Alternative Functionals (e.g., PBEh-3c, r2 SCAN-3c) | Other composite methods with different functional forms and basis sets (e.g., def2-mSVP) that may be more suitable for systems where B973C fails [9]. |
This guide helps you diagnose and resolve the "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" and related system-size errors in CRYSTAL calculations.
| Symptom | Likely Error Type | Primary Cause | Immediate Action |
|---|---|---|---|
| "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" at SCF start | Basis Set Linear Dependence | Diffuse orbitals too close in system geometry [3] | Use LDREMO keyword or remove low-exponent functions [3] |
| "ERROR * CLASSS * ILA DIMENSION EXCEEDED - INCREASE ILASIZE" during calculation | System-Size Related | Insufficient memory allocation for large systems [3] | Increase the ILASIZE parameter in input [3] |
| Job aborts in parallel with no clear error message | Basis Set Linear Dependence | LDREMO required but only works in serial mode [3] |
Run calculation serially to see the error [3] |
Significant errors in binding energy (Eb) |
Basis Set Incompleteness | Using a basis set that is too small [10] | Use augmented basis sets (e.g., aug-cc-pVTZ) or apply counterpoise correction [10] |
This error occurs when the calculation cannot find a set of linearly independent functions to form the basis, often due to diffuse orbitals [3].
Solution 1: Use the LDREMO Keyword
Add the LDREMO keyword to your input file. It automatically removes functions causing dependence [3].
LDREMO followed by an integer (e.g., LDREMO 4).<integer> * 10^-5 are removed before the SCF step [3].Solution 2: Manually Remove Diffuse Functions A common approach is to manually eliminate basis functions with small exponents (e.g., below 0.1), as these diffuse functions are often the cause [3].
Important Consideration: The B973C functional is a composite method designed for the mTZVP basis set. Modifying this built-in basis set is not recommended. This functional was primarily developed for molecular systems and molecular crystals, and may not be suitable for bulk materials. For bulk systems, consider choosing a different functional and basis set combination [3].
This is a system-size error, unrelated to the linear dependence issue. It occurs when the system is too large for the pre-allocated memory [3].
ILASIZE parameter [3].ILASIZE keyword in your input file. Consult the CRYSTAL user manual (page 117) for guidance on selecting an appropriate value [3].Basis Set Incompleteness Error (BSIE) is a common source of error in quantum chemistry. While Fixed-Node Diffusion Monte Carlo (FN-DMC) is often considered less affected, it is not immune, especially for noncovalent binding energies [10].
cc-pVDZ, cc-pVTZ) can lead to significant BSIEs in binding energy evaluations of weakly interacting systems [10].aug-cc-pVTZ basis set family provides a good balance of cost and accuracy. For smaller systems, aug-cc-pVDZ can be sufficient if counterpoise correction is applied [10].Basis Set Superposition Error (BSSE) occurs when basis functions of interacting fragments overlap, artificially lowering the energy of the complex. The counterpoise method corrects for this [11].
Workflow for a Dimer (A-B):
A systematic approach to evaluate and minimize BSIE [10].
cc-pVnZ).cc-pVDZ, cc-pVTZ, aug-cc-pVDZ, aug-cc-pVTZ).aug-cc-pVTZ often performs well without CP correction, while aug-cc-pVDZ is sufficient with CP correction [10].| Item | Function | Application Context |
|---|---|---|
| LDREMO Keyword | Automatically removes basis functions with eigenvalues below a defined threshold to resolve linear dependence [3]. | Fixing "CHOLSK" error in serial calculations. |
| ILASIZE Keyword | Increases the size of internal memory arrays to handle larger systems [3]. | Fixing "ILA DIMENSION EXCEEDED" error. |
| aug-cc-pVTZ basis set | Triple-zeta basis augmented with diffuse functions; offers a good cost/accuracy balance for noncovalent interactions [10]. | Reducing BSIE in binding energy calculations. |
| Counterpoise (CP) Correction | A computational procedure to correct for Basis Set Superposition Error (BSSE) [10]. | Obtaining accurate interaction energies for weakly bound complexes. |
| Ghost Atoms | Atoms in a calculation that contribute their basis functions but no nuclei or electrons [11]. | Essential for performing counterpoise correction. |
Follow this logical pathway to diagnose and act upon the errors discussed in this guide.
The ERROR CHOLSK BASIS SET LINEARLY DEPENDENT occurs when the basis set used in a CRYSTAL calculation is numerically over-complete. This means that one or more basis functions can be represented as a linear combination of other functions in the set, making the overlap matrix singular and preventing the calculation from proceeding [3].
The primary causes are:
SCANMODE, significant atomic displacements from the equilibrium geometry can alter interatomic distances enough to trigger linear dependence in a previously stable basis set [12].The LDREMO keyword provides an automated way to remove linearly dependent basis functions. It works by diagonalizing the overlap matrix in reciprocal space before the Self-Consistent Field (SCF) step. Basis functions associated with eigenvalues below a defined threshold are systematically excluded from the calculation [3].
The syntax for the keyword in your CRYSTAL input file is:
The <integer> value sets the removal threshold to <integer> * 10^-5. You must place this keyword in the third section of the input file, below the SHRINK keyword [3].
Threshold Values and Interpretation:
| Threshold Integer | Actual Threshold | Interpretation |
|---|---|---|
4 |
4.0 × 10⁻⁵ | A standard, relatively strict starting value. |
8 |
8.0 × 10⁻⁵ | A more relaxed threshold, removing more functions. |
Important Usage Notes:
- The information about which basis functions are removed is only printed when running in serial mode (with a single process). Parallel execution may not display this diagnostic information [3].
- Using
LDREMOcan sometimes trigger other, unrelated errors likeILA DIMENSION EXCEEDED, which may require increasing memory parameters likeILASIZE[3].
The following diagram illustrates the logical workflow for resolving this error, positioning LDREMO as the primary automated remedy.
| Reagent / Keyword | Function |
|---|---|
LDREMO |
The primary keyword for automatically removing linearly dependent basis functions by diagonalizing the overlap matrix [3]. |
B973C Functional |
A composite method with built-in corrections. Use with caution as it is designed for the mTZVP basis set and is primarily intended for molecular systems, not bulk materials [3]. |
mTZVP Basis Set |
A built-in molecular basis set that contains diffuse functions and can be prone to linear dependence in periodic systems or specific geometries [3]. |
SHRINK Keyword |
Defines the k-point mesh in reciprocal space. The LDREMO keyword must be placed in the input section below this one [3]. |
ILASIZE Keyword |
A parameter to control memory allocation. Using LDREMO on large systems might require increasing this value to avoid a separate ILA DIMENSION EXCEEDED error [3]. |
You can manually edit your basis set to remove functions with small exponents (typically below 0.1), as these are the most common source of linear dependence [3]. However, modifying a built-in, optimized basis set is not recommended as it can introduce uncontrolled errors [3].
Some functionals and basis sets are designed for specific systems. The B973C functional and mTZVP basis set, for example, were developed for molecular systems and may not be suitable for bulk materials, where this error is more likely to occur. If LDREMO does not resolve the issue, switching to a functional and basis set better suited for periodic systems is a more robust solution [3].
If the error appears during a SCANMODE calculation, your scan step might be too large, creating unrealistic geometries. Try using a finer step size (e.g., 0.1 or 0.4) to prevent excessive atomic displacements that trigger linear dependence [12].
Q1: What does the LDREMO keyword do in CRYSTAL?
The LDREMO keyword instructs the CRYSTAL code to systematically remove linearly dependent basis functions. It works by diagonalizing the overlap matrix in reciprocal space before the Self-Consistent Field (SCF) step. Basis functions corresponding to eigenvalues below a defined threshold (<integer> × 10⁻⁵) are automatically excluded from the calculation [3].
Q2: I am getting "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT". Why does this happen?
This error indicates that your basis set is linearly dependent, often triggered by diffuse orbitals with small exponents that are too close together spatially [3]. This can occur even with built-in, optimized basis sets (like mTZVP) when the geometry of your system causes atomic orbitals to overlap significantly [3].
Q3: What is a good starting value for the LDREMO integer threshold?
A good initial value is LDREMO 4, which excludes basis functions with eigenvalues of the overlap matrix below 4 × 10⁻⁵ [3].
Q4: Can I use LDREMO in a parallel calculation?
Critical diagnostic information about which basis functions are removed is only printed when CRYSTAL runs in serial mode (using a single process) [3]. Run your job serially to see this information.
Q5: After adding LDREMO, I get an "ILA DIMENSION EXCEEDED" error. What should I do?
This error is unrelated to linear dependence and is due to the system's size. You must increase the ILASIZE parameter in your input file. Consult the CRYSTAL user manual (page 117 is referenced for this keyword) for guidance [3].
Q6: Is manually modifying a built-in basis set a better solution than using LDREMO?
For composite methods like B973C, which are explicitly designed for use with the mTZVP basis set, manually removing functions is not recommended as it can introduce errors [3]. Using LDREMO is the preferred and more controlled approach. For bulk materials, consider switching to a functional and basis set better suited for periodic systems [3].
The flowchart below outlines the logical process for diagnosing and resolving the "BASIS SET LINEARLY DEPENDENT" error.
Initial Diagnosis & Setup
Primary Intervention: Applying LDREMO
SHRINK keyword is a suitable location), add the following line:
Threshold Optimization
LDREMO threshold integer.The following table summarizes the purpose and typical use cases for different threshold values.
| Threshold Integer | Eigenvalue Cut-off | Purpose and Application |
|---|---|---|
4 |
4.0 × 10⁻⁵ |
Recommended starting value. Removes significantly linearly dependent functions with minimal impact on the basis set quality [3]. |
5 to 7 |
5.0 - 7.0 × 10⁻⁵ |
Moderate removal. Used when LDREMO 4 does not fully resolve the error, indicating stronger linear dependencies [3]. |
> 7 |
> 7.0 × 10⁻⁵ |
Aggressive removal. Use with caution as it may begin to affect the completeness of your basis set and the physical accuracy of the results [3]. |
The table below lists key components for resolving basis set linear dependence issues in computational experiments.
| Item | Function & Purpose |
|---|---|
LDREMO Keyword |
The primary tool for automatically removing linearly dependent basis functions by filtering based on the eigenvalues of the overlap matrix [3]. |
| Serial Execution Mode | Essential for obtaining verbose output that details which specific basis functions are removed by the LDREMO procedure, crucial for debugging [3]. |
| Alternative Basis Sets | If LDREMO is insufficient, switching to a basis set with fewer diffuse functions (e.g., a double-zeta quality basis) can prevent linear dependence from the outset. |
ILASIZE Parameter |
A critical parameter for handling large systems. It may need to be increased if a calculation with LDREMO fails with an "ILA DIMENSION EXCEEDED" error [3]. |
A essential troubleshooting guide for CRYSTAL software users encountering the CHOLSK error.
This error indicates a mathematical problem where the basis set functions used in your calculation are not linearly independent. In practical terms, it means the software cannot find a unique solution to the equations governing your chemical system because some basis functions are so similar they are effectively redundant [3]. This is a common issue in computational chemistry that can arise from several specific conditions.
Running your calculation in serial (single-process) mode is a critical diagnostic step because parallel execution often suppresses detailed error messages [3]. When running with multiple processes (e.g., MPI), the job may abort with a generic MPI abort message or simply hang without providing the specific "CHOLSK" error, making diagnosis impossible. Serial execution ensures that the detailed error output, including which basis functions are causing the problem, is printed to your output file.
You have several options to resolve linear dependence, ranging from simple keyword use to more fundamental changes in your computational approach.
The most direct method is to use the LDREMO keyword in the third section of your CRYSTAL input file [3].
SHRINK keyword:
<integer> * 10^-5 will be excluded. Start with an integer value of 4 and increase if needed [3].Linear dependence is frequently caused by basis functions with very small exponents (diffuse functions) [3].
The underlying issue might be an unsuitable combination of functional, basis set, and system.
The geometry of your system can induce linear dependence, even with a basis set that works for other structures [3] [12].
SCANMODE, where large atomic displacements from the equilibrium geometry can create problematic interatomic distances [12].The table below lists key computational "reagents" and their roles in resolving the linear dependence error.
| Research Reagent | Function in Diagnosis/Solution |
|---|---|
| LDREMO Keyword | Primary keyword to automatically detect and remove linearly dependent basis functions [3]. |
| Serial Execution | Required operational mode to obtain detailed error diagnostics from the CRYSTAL code [3]. |
| Modified Basis Set | A basis set with manually removed diffuse functions (exponent < 0.1) to prevent overlap [3]. |
| Alternative Functional | A solid-state-suited functional to replace methods like B973C when studying bulk materials [3]. |
Purpose: To force CRYSTAL to output a detailed error message for the "CHOLSK" failure, enabling an effective solution.
Procedure:
mpirun or mpiexec commands, or by specifying a single process if required by your job system.LDREMO keyword with a starting value of 4 to your input file.LDREMO. The output will now list which basis functions were excluded during the calculation.ILA DIMENSION EXCEEDED), you may need to increase the ILASIZE parameter or consider more fundamental changes to your basis set or functional [3].
After implementing LDREMO, you might encounter a new error: ERROR CLASSS ILA DIMENSION EXCEEDED - INCREASE ILASIZE 6000 [3].
ILASIZE keyword in your input, increasing its value from the default [3].This error arises during a CRYSTAL calculation when the chosen basis set is mathematically linearly dependent [3]. This means that one or more basis functions can be expressed as a linear combination of other functions in the set, making the overlap matrix singular and preventing the Cholesky decomposition—a key numerical step—from being performed [6]. In practice, this is most frequently caused by the presence of diffuse functions (atomic orbitals with very small exponents) in the basis set [3]. When atoms in your crystal structure are close together, these diffuse orbitals can become numerically redundant, triggering the error [3].
A direct method to resolve linear dependence is to manually identify and remove the most diffuse basis functions.
The table below summarizes the key parameters for this intervention:
| Parameter | Description | Typical Value |
|---|---|---|
| Exponent (a) Threshold | Functions with exponents below this value are candidates for removal. | < 0.1 [3] |
| Target Functions | The type of basis functions most likely to cause problems. | Diffuse orbitals (e.g., s, p, d shells with small exponents) |
Follow these steps to manually remove diffuse functions from your basis set:
The following diagram illustrates the logical workflow for resolving the linear dependence error, positioning manual intervention as one of the two primary solution paths.
| Tool / Reagent | Function / Purpose |
|---|---|
| CRYSTAL Code | The main software platform for quantum-mechanical calculations of periodic systems. |
| Basis Set File | A text file defining the atomic orbitals (basis functions) used to describe electrons in your system. |
| B973C Functional | A composite functional with built-in corrections; note it is primarily designed for molecular systems and molecular crystals, and using it for bulk materials may lead to issues [3]. |
| mTZVP Basis Set | A molecular triple-zeta valence basis set with polarization functions. As a molecular basis, it is prone to linear dependence in periodic systems due to its diffuse orbitals [3]. |
| LDREMO Keyword | An automated alternative to manual removal; instructs CRYSTAL to systematically remove linearly dependent functions based on a threshold [3]. |
LDREMO keyword for automated removal of linearly dependent functions. This can be a less intrusive first step than manually editing the basis set [3].What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean? This error indicates that your basis set contains functions that are not linearly independent, making the overlap matrix singular and impossible to invert. This commonly occurs with built-in molecular basis sets in periodic calculations when diffuse orbitals are present and atoms are close together [3].
Why am I getting this error even with a built-in, optimized basis set? Built-in basis sets, while optimized, are often designed for molecular systems and can become linearly dependent in specific crystal geometries where atomic orbitals are in closer proximity than in the system the basis set was originally tested on [3].
Can I simply remove diffuse functions manually to fix this? Yes, this is a common approach where you manually eliminate basis functions with small exponents (e.g., below 0.1). However, this modifies the carefully constructed basis set and is not generally recommended for composite methods where the basis set and functional are designed to be used together, as it can introduce errors [3].
What is the LDREMO keyword and how do I use it?
The LDREMO keyword instructs CRYSTAL to automatically detect and remove linearly dependent functions by diagonalizing the overlap matrix in reciprocal space. Functions corresponding to eigenvalues below <integer> * 10^-5 are excluded. A typical starting value is LDREMO 4 [3].
I used LDREMO and got an "ILA DIMENSION EXCEEDED" error. What now?
This is a separate error related to memory allocation. You will need to increase the ILASIZE parameter in your input file. Consult the CRYSTAL user manual (page 117) for details on this keyword [3].
My functional (e.g., B973C) mandates a specific basis set. What should I do? Composite methods like B973C are often developed specifically with a particular molecular basis set (e.g., mTZVP). Modifying this basis set is not advised. If linear dependence persists, the best practice may be to select a different functional and basis set combination that is more suited for solid-state systems [3].
LDREMO Keyword: This is the most straightforward first step. Add LDREMO 4 in the third section of your input file, below the SHRINK keyword. Be sure to run the calculation in serial mode to see the diagnostic output [3].TZP (Triple Zeta with Polarization) level is often recommended as it offers a good balance of accuracy and computational efficiency [13].Choosing an appropriate basis set is always a trade-off between accuracy and computational cost. The following table summarizes a typical hierarchy of basis sets, from least to most accurate and costly [13].
Table 1: Standard Basis Set Hierarchy and Typical Use Cases
| Basis Set | Description | Recommended Use |
|---|---|---|
| SZ | Single Zeta | Minimal basis; useful for quick test calculations; results are often inaccurate [13]. |
| DZ | Double Zeta | Computationally efficient; suitable for structure pre-optimization; poor for properties depending on virtual orbitals due to lack of polarization functions [13]. |
| DZP | Double Zeta + Polarization | Reasonably good for geometry optimizations of organic systems [13]. |
| TZP | Triple Zeta + Polarization | Offers the best balance between performance and accuracy. Generally recommended. [13] |
| TZ2P | Triple Zeta + Double Polarization | Accurate; should be used when a good description of the virtual orbital space is critical [13]. |
| QZ4P | Quadruple Zeta + Quadruple Polarization | Largest standard set; used for benchmarking and high-accuracy studies [13]. |
The cost and error associated with this hierarchy are quantified in the table below, using the formation energy of a carbon nanotube as an example.
Table 2: Quantitative Trade-off: Basis Set Accuracy vs. Computational Cost [13]
| Basis Set | Energy Error (eV/atom) | CPU Time Ratio (Relative to SZ) |
|---|---|---|
| SZ | 1.8 | 1.0 |
| DZ | 0.46 | 1.5 |
| DZP | 0.16 | 2.5 |
| TZP | 0.048 | 3.8 |
| TZ2P | 0.016 | 6.1 |
| QZ4P | (reference) | 14.3 |
For specialized applications, such as 2D materials, further optimization of the basis set can be crucial. Research has shown that adding higher angular momentum polarization orbitals (e.g., l+2 or 4f orbitals for elements like B, C, N) can provide greater angular flexibility and significantly improve agreement with plane-wave benchmarks for properties like total energy, lattice constant, and band structure [14].
Table 3: Key Computational Reagents and Resources
| Item | Function / Description |
|---|---|
LDREMO Keyword |
A CRYSTAL input keyword that automatically removes linearly dependent basis functions [3]. |
ILASIZE Keyword |
A CRYSTAL input keyword that controls memory allocation; may need to be increased when using LDREMO on large systems [3]. |
| TZP Basis Set | A balanced and generally recommended basis set (Triple Zeta + Polarization) for many solid-state applications [13]. |
| Frozen Core Approximation | A technique that speeds up calculations by keeping core orbitals frozen. It is recommended for use, especially with heavy elements, though some advanced functionals may require all-electron calculations [13]. |
| Optimized Basis Sets for 2D Materials | Specially developed basis sets for systems like graphene and hBN that include extra polarization orbitals to accurately describe electron density decay into vacuum [14]. |
The following workflow provides a structured protocol for diagnosing and resolving the basis set linear dependence error.
What does the 'ILA DIMENSION EXCEEDED' error mean?
This error indicates that an internal storage array for integral calculations has been exceeded. It often occurs after using the LDREMO keyword because removing linearly dependent functions changes the basis set, which can increase the complexity of integral calculations beyond pre-allocated limits [3].
How is this error related to the 'ERROR CHOLSK BASIS SET LINEARLY DEPENDENT'?
The LDREMO keyword is a primary solution for the linear dependence (CHOLSK) error. The ILA DIMENSION EXCEEDED error is thus a potential consequence of successfully applying the first fix, as the calculation can now proceed but requires more resources [3].
Can I use the LDREMO keyword in parallel runs?
The LDREMO functionality, which provides information on excluded basis functions, is only available when running CRYSTAL in serial mode (with a single process). Running in parallel on Linux may not show detailed error messages [3].
The direct fix is to increase the dimension of the internal integral buffer using the ILASIZE keyword in your CRYSTAL input file [3].
ILASIZE keyword to the third section of your input file, typically below the SHRINK keyword.This error chain often begins when using high-quality, diffuse molecular basis sets (like mTZVP) for solid-state calculations in CRYSTAL. These basis sets are prone to linear dependence in periodic systems where atomic orbitals are closer together, leading to the initial CHOLSK error [3] [15]. Using LDREMO resolves the linear dependence but can trigger subsequent resource-related errors.
The B973C functional is a composite method designed for the mTZVP basis set. Modifying the mTZVP basis set manually is not recommended, as it can introduce errors. The CRYSTAL user manual (page 161) notes that this functional and basis set were primarily developed for molecular systems and molecular crystals, not all bulk materials [3].
If increasing ILASIZE does not resolve the issue, or if you are modeling bulk materials, consider switching to a functional and basis set better suited for solid-state systems. This can prevent both the linear dependence and the subsequent resource issues [3].
This protocol outlines the steps to diagnose and fix the error chain from linear dependence to exceeded internal dimensions.
The following table details computational "reagents" and parameters essential for troubleshooting this issue in CRYSTAL.
| Item Name | Function / Purpose | Key Consideration |
|---|---|---|
LDREMO Keyword |
Automatically removes linearly dependent basis functions by diagonalizing the overlap matrix. | Use in serial mode to see diagnostic info. Start with LDREMO 4 [3]. |
ILASIZE Keyword |
Increases the size of an internal buffer for integral calculation, resolving the dimension error [3]. | Value must be determined empirically; consult the manual. |
mTZVP Basis Set |
A high-quality, triple-zeta valence molecular basis set with polarization functions. | Contains diffuse functions that can cause linear dependence in periodic solids [3]. |
B973C Functional |
A composite density functional with built-in corrections, designed for use with mTZVP [3]. |
Best suited for molecular systems and molecular crystals; may not be ideal for all bulk materials [3]. |
| Serial vs. Parallel Run | CRYSTAL can be executed using one (serial) or many (parallel) processors. | The LDREMO diagnostic information is only printed in serial execution mode [3]. |
A technical guide to navigating computational limits in CRYSTAL research
This technical support center document provides troubleshooting guides and FAQs for researchers encountering specific errors when performing quantum mechanical calculations on large systems with the CRYSTAL software. The guidance focuses on resolving the "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" and related errors, framed within the context of parameter optimization for large, complex systems typical in materials science and drug development research.
Q1: What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean and what causes it?
This error indicates that the basis set functions used in your calculation are mathematically linearly dependent, meaning some functions can be expressed as combinations of others, preventing the Cholesky decomposition necessary for solving the quantum mechanical equations [3]. This typically occurs when:
Q2: How is the ILASIZE error related to the linear dependence error?
When you attempt to resolve the linear dependence issue using the LDREMO keyword, you might encounter a subsequent error: "ERROR * CLASSS * ILA DIMENSION EXCEEDED - INCREASE ILASIZE 6000" [3]. This occurs because:
LDREMO algorithm requires additional memory and computational resources to handle the linear dependence resolutionILASIZE parameter value is insufficient for your system when combined with the overhead of addressing linear dependencies [3]Q3: What is the recommended approach when built-in basis sets cause linear dependence?
Although modifying built-in basis sets is generally discouraged, the CRYSTAL forum suggests that even optimized molecular basis sets can cause linear dependence in certain geometries [3]. If you encounter this with a built-in basis set:
LDREMO keyword approach before modifying basis sets directlyQ4: Are there alternative solutions if increasing ILASIZE doesn't resolve the issue?
If increasing ILASIZE doesn't solve the problem or introduces new instability:
Method 1: Using the LDREMO Keyword
The LDREMO keyword systematically removes linearly dependent functions by diagonalizing the overlap matrix in reciprocal space [3].
Implementation Protocol:
Method 2: Manual Basis Set Modification
Implementation Protocol:
Precautions: Manual modification may introduce errors, particularly for composite methods like B973C which are specifically designed for particular basis sets [3].
Method: Increasing ILASIZE Parameter
The ILASIZE parameter controls the memory allocation for certain arrays in CRYSTAL calculations [3].
Implementation Protocol:
ILASIZE keyword to your input file with an increased value:
MAXDIZE or MAXBUF as well| Parameter | Function | Recommended Values | Application Context |
|---|---|---|---|
| LDREMO | Removes linearly dependent basis functions | 4-8 (×10⁻⁵ threshold) | Systems with diffuse functions or close atomic contacts [3] |
| ILASIZE | Controls memory for integral storage | 6000-20000 (system-dependent) | Large systems, especially with LDREMO active [3] |
| Basis Set Selection | Defines atomic orbitals | mTZVP (molecular), TZVP (periodic) | Match to system type and functional requirements [3] |
| SHRINK | Controls k-point sampling | System-dependent (e.g., 52 for Na₂Si₂O₅) | Metallic systems need higher values [3] |
| Component | Function | Implementation Notes |
|---|---|---|
| mTZVP Basis Set | Molecular triple-zeta valence basis | Prone to linear dependence in periodic systems; use with caution for bulk materials [3] |
| B973C Functional | Composite density functional | Specifically designed for mTZVP; not recommended for systems with linear dependence issues [3] |
| Pseudopotentials | Reduces electron count for heavy atoms | Consider DZVP-MOLOPT-SR-GTH for lanthanides [16] |
| Alternative BLAS/LAPACK | Mathematical libraries for linear algebra | OpenBLAS 0.3.19 has known Cholesky issues; MKL may be more stable [17] |
Phase 1: Preliminary Assessment
Phase 2: Initial Calculation Attempt
Phase 3: Addressing Linear Dependence
LDREMO 4 to input filePhase 4: Managing Memory Parameters
Phase 5: Validation
Figure 1: Large system error resolution workflow.
The stability of Cholesky decomposition can be influenced by your computational environment:
LDREMO is only available in serial execution mode [3]For optimal stability with large systems, consider using Intel MKL libraries rather than OpenBLAS, particularly if working with AVX512-capable processors [17].
A technical guide for researchers tackling computational convergence challenges in materials science and drug development.
What is the SHRINK keyword and how does it relate to k-points?
In CRYSTAL, the SHRINK keyword is used to define the k-point mesh for sampling the Brillouin zone. It controls the fineness of the grid, directly impacting the accuracy and convergence of your calculation. A higher SHRINK value (finer mesh) is typically required for metals and systems with small unit cells [18].
I am getting an "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT". Could my k-point settings be the cause? While this error directly points to an issue with your basis set, your geometrical structure can be the underlying reason. The error can be triggered when atoms in your crystal structure are positioned in such a way that their basis functions (atomic orbitals) become too close, leading to numerical linear dependence. Optimizing your lattice parameters via a geometry optimization can sometimes resolve this by finding a more stable, physical structure with different atomic separations [3] [18].
How do I choose an appropriate SHRINK value for my system? The optimal SHRINK value depends on your material and the size of its unit cell [18]:
The most reliable method is to perform a k-point convergence study: systematically increase the SHRINK value (e.g., 4, 8, 12, ...) and calculate a target property (like energy or lattice constant) until the change between successive calculations is smaller than your desired precision [18].
My calculation converges slowly during a geometry optimization. Should I change the k-points? Yes. During a geometry optimization, the lattice parameters change, which can affect the quality of your initial k-point mesh. It is recommended to use a better-than-normal k-space quality setting when performing a lattice optimization to ensure consistent accuracy throughout the process [18].
Objective: To diagnose and fix basis set linear dependence, a common issue that can be related to system geometry.
Background: This error indicates that the program cannot find a numerically stable solution because the basis functions used to describe the atomic orbitals are no longer independent. This is often caused by the presence of diffuse functions in the basis set when atoms are close together [3].
Protocol:
LDREMO keyword to your input file, typically in the third section below the SHRINK keyword. This instructs the code to automatically remove linearly dependent functions.
4 (e.g., LDREMO 4), which excludes basis functions corresponding to eigenvalues of the overlap matrix below 4 * 10^-5 [3].The following diagram illustrates the logical workflow for diagnosing and fixing this error:
Objective: To determine the computationally most efficient SHRINK value that yields results within a desired target error for your property of interest.
Background: Using unnecessarily high SHRINK values wastes computational resources, while values that are too low produce inaccurate results. A convergence study finds the optimal balance [19].
Protocol:
SHRINK value (e.g., 4, 8, 12, 16, 24).SHRINK value (or the number of k-points). The value is considered converged when the change from one step to the next falls below your target precision (e.g., 1 meV/atom for energy or 1 GPa for bulk modulus) [19].SHRINK value that provides a converged result for all subsequent calculations on similar systems.The table below summarizes a hypothetical convergence study for a semiconductor:
Table: Example K-Point Convergence Study for a Hypothetical Si Unit Cell
| SHRINK Value | Irreducible K-Points | Total Energy (Ha/atom) | ΔE (meV/atom) | Lattice Constant (Å) |
|---|---|---|---|---|
| 4 | 4 | -288.12345 | - | 5.45 |
| 8 | 10 | -288.12890 | 5.45 | 5.43 |
| 12 | 28 | -288.12995 | 1.05 | 5.429 |
| 16 | 48 | -288.13010 | 0.15 | 5.428 |
| 24 (Reference) | 120 | -288.13015 | 0.05 | 5.428 |
In this example, a SHRINK value of 12 or 16 might be sufficient for many applications, saving significant computational effort compared to 24.
Table: Essential "Reagents" for Convergence and Error Troubleshooting
| Item | Function in "Experiment" |
|---|---|
LDREMO Keyword |
The primary "reagent" to treat basis set linear dependence. It automatically removes problematic basis functions based on a user-defined threshold [3]. |
| Serial Calculation | A required "control condition" for diagnosing the CHOLSK error. The LDREMO output is only available when running with a single process [3]. |
| K-Point Convergence Study | A core diagnostic "assay" to determine the minimum SHRINK value needed for reliable results, optimizing computational resource use [18] [19]. |
| Geometry Optimization | A foundational "preparatory step." A relaxed structure with optimized lattice parameters can prevent many convergence issues, including basis set linear dependence and inaccurate stresses [18]. |
| Alternative Functional/Basis Set | A "solution" for when the chosen method is inherently unsuitable for the material (e.g., using a molecular-optimized functional for a bulk metal crystal) [3]. |
Problem Description This error indicates that the basis set used in your CRYSTAL calculation contains functions that are not linearly independent. This is a common issue when using molecular basis sets for solid-state systems, particularly with diffuse functions on atoms that are in close proximity within the crystal lattice [3].
Primary Causes
Step-by-Step Resolution Protocol
Step 1: Immediate Remediation with the LDREMO Keyword
The most direct fix is to use the LDREMO keyword, which systematically removes linearly dependent functions.
SHRINK keyword), add the following line [3]:
The integer 4 specifies that basis functions corresponding to eigenvalues of the overlap matrix below 4 * 10^-5 will be excluded. You may need to increase this value (e.g., to 5 or 6) if linear dependence persists.Step 2: Manually Remove Diffuse Functions
If the LDREMO keyword leads to other errors (like ILA DIMENSION EXCEEDED), you can manually remove the most diffuse functions from your basis set.
Step 3: Re-evaluate Your Functional and Basis Set Choice If the above steps fail or are unsuitable, the most robust solution is to change your computational strategy. The composite functional B973C, for example, is designed for use with the mTZVP basis set but was primarily developed for molecular systems and molecular crystals, not bulk materials [3].
Diagnostic Table: Linear Dependence Error Resolution Strategies
| Strategy | Keyword / Action | Advantage | Disadvantage | When to Use |
|---|---|---|---|---|
| Automatic Removal | LDREMO <integer> |
Quick, systematic; requires minimal user input | May trigger other errors (e.g., ILASIZE); serial mode needed for verbose output |
First-line response; system-specific basis sets [3] [20] |
| Manual Pruning | Manually remove functions with exponents < 0.1 | Directly addresses the root cause (diffuse functions) | Modifies built-in basis sets, potentially reducing accuracy | If LDREMO fails; user has expertise in basis set design [3] |
| Strategy Change | Adopt a different functional/basis set pair | Most robust and chemically accurate long-term solution | Requires restarting the calculation from scratch | For bulk materials; when other fixes fail [3] |
Basis Set Hierarchy and Performance The choice of basis set is a trade-off between accuracy and computational cost. The following table summarizes standard basis set types and their use cases, adapted for solid-state systems [13].
Comparison Table: Standard Basis Set Tiers and Performance
| Basis Set Type | Description | Typical Energy Error (eV/atom) * | CPU Time Ratio * | Recommended Use Case |
|---|---|---|---|---|
| SZ (Single Zeta) | Minimal basis set | ~1.8 | 1 | Very quick test calculations [13] |
| DZ (Double Zeta) | Two basis functions per valence orbital | ~0.46 | 1.5 | Pre-optimization of structures [13] |
| DZP (Double Zeta + Polarization) | DZ plus polarization functions | ~0.16 | 2.5 | Geometry optimizations of organic systems [13] |
| TZP (Triple Zeta + Polarization) | Three basis functions per valence orbital plus polarization | ~0.048 | 3.8 | Recommended default for best performance/accuracy balance [13] |
| TZ2P (Triple Zeta + Double Polarization) | TZP with a second set of polarization functions | ~0.016 | 6.1 | Accurate description of virtual orbitals (e.g., band gaps) [13] |
| QZ4P (Quadruple Zeta + Quadruple Polarization) | Largest standard basis set | Reference | 14.3 | High-accuracy benchmarking [13] |
*Performance data is illustrative and based on carbon nanotube formation energies. Actual errors and timings are system-dependent. [13]
Functional and Basis Set Compatibility Matrix
| Functional Type | Recommended Basis Set Type | Key Considerations |
|---|---|---|
| Composite Methods (e.g., B973C) | Specific, built-in basis sets (e.g., mTZVP) | Do not modify the basis set; not recommended for bulk materials [3] |
| Hybrid Functionals | All-electron (Core None) | Incompatible with the frozen core approximation in some software [13] |
| Meta-GGA | All-electron or Small frozen core |
Frozen orbitals computed with LDA, not the selected Meta-GGA [13] |
| GGA | TZP or DZP with frozen core | Offers a good balance of speed and accuracy for many solids [13] |
FAQ 1: I am using a built-in, optimized basis set. Why am I getting a linear dependence error, and should I modify this basis set?
It is not recommended to modify built-in, optimized basis sets as this can introduce errors and invalidate the parameterization of composite methods [3]. The error occurs because these basis sets are often developed for molecules and contain diffuse functions that become problematic in the closer-packed environment of a crystal [3]. The preferred solution is to use the LDREMO keyword. If this is not successful, you should change your strategy and select a different functional and basis set pair that is more appropriate for solid-state calculations [3].
FAQ 2: What is the most reliable basis set for general use in solid-state calculations with CRYSTAL? A Triple Zeta plus Polarization (TZP) basis set generally offers the best balance between performance and accuracy for a wide range of properties and is a good starting point for most calculations [13]. It provides a significantly better description of the electronic structure than double-zeta basis sets, especially for properties like band gaps [13].
FAQ 3: When should I use diffuse functions in my basis set?
Diffuse functions (e.g., aug- basis sets) are essential for describing anions, dipole moments, and long-range interactions in molecules [2]. However, in dense crystalline solids, they are often unnecessary and are a primary cause of linear dependence errors due to the significant overlap of these very extended functions between adjacent atoms in the lattice [3] [20]. They should be used with caution in solid-state calculations.
FAQ 4: The LDREMO keyword caused an "ILA DIMENSION EXCEEDED" error. What should I do?
This error is unrelated to linear dependence and is due to the size of your system exceeding a pre-allocated memory parameter [3]. You will need to increase the ILASIZE keyword in your input file. Consult the CRYSTAL user manual (page 117, as of the time of the forum discussion) for instructions on how to set this parameter correctly [3].
Table: Essential Computational Tools for Basis Set Management
| Item | Function | Application Note |
|---|---|---|
| LDREMO Keyword | Automatically removes linearly dependent basis functions by diagonalizing the overlap matrix in reciprocal space [3]. | First-line diagnostic and fix. Use in serial mode to see which functions are removed. |
| System-Adapted Basis Sets (SABS) | Basis sets crafted on-the-fly for a specific system and qubit/user-resource budget [21]. | An advanced strategy to minimize resource use while maintaining accuracy. |
| BDIIS Algorithm | A basis set optimization method that minimizes total energy while controlling the condition number of the overlap matrix to prevent linear dependence [20]. | Used for system-specific optimization of basis set exponents and contraction coefficients. |
| Frozen Core Approximation | Treats core orbitals as frozen, reducing computational cost [13]. | Recommended for speed, especially with heavy elements. Not compatible with hybrid functionals in some codes [13]. |
| TZP Basis Set | A Triple Zeta plus Polarization basis set [13]. | The recommended default for a wide range of solid-state properties, offering a good accuracy/speed balance. |
Q1: What is the fundamental difference between serial and parallel diagnostic thinking? A1: Serial diagnostics operates on a cause-and-effect model, where symptoms are seen as interconnected links in a chain leading to a single root cause. If one symptom (or "link") is missing, the entire diagnostic hypothesis can fail. In contrast, parallel diagnostics treats individual symptoms as independent data points that may not share a common cause, allowing for a more flexible approach to complex conditions [22].
Q2: Why should I run my computations in serial mode to diagnose an error? A2: Running in serial mode is a primary troubleshooting step because it often provides more detailed and sequential error messages. In parallel execution, error outputs can be lost, incomplete, or difficult to attribute to a specific process. As seen in the CRYSTAL forum, a user encountered an error that only provided meaningful output when the calculation was run in serial mode on a Windows machine, whereas the parallel run on Linux aborted without useful diagnostics [3].
Q3: What are the most common types of problems in parallel execution? A3: The most common problems include [23] [24]:
Q4: My calculation failed with "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT". What does this mean? A4: This error indicates that the basis set you are using contains functions that are not linearly independent, which prevents the software from solving the necessary matrix equations. This is often caused by the presence of diffuse orbitals with small exponents in the basis set, which can become problematic depending on your system's geometry [3].
Begin by running your calculation in a serial execution environment. This simplifies the output and ensures that error messages are not lost or interleaved with output from multiple parallel processes. This is a critical first step for obtaining a clear diagnostic message [3].
Adopt the Diagnostic Evaluation Symptom Qualification (DESQ) approach. Collect all error messages, warnings, and anomalous outputs, but instead of forcing them into a single causal chain, consider them both serially and in parallel [22].
The following workflow outlines this diagnostic process:
Based on your diagnosis, apply specific remedies. For the "BASIS SET LINEARLY DEPENDENT" error, the following solutions are recommended [3]:
| Solution | Methodology | Key Consideration |
|---|---|---|
| Use LDREMO Keyword | Add LDREMO <integer> to the input file. The code will diagonalize the overlap matrix and remove functions with eigenvalues below <integer> * 10⁻⁵. |
Start with LDREMO 4. This must be run in serial mode to see the diagnostic output about excluded functions. |
| Modify Basis Set | Manually remove diffuse basis functions with exponents below a threshold (e.g., 0.1) from the basis set file. | This is an advanced operation; modifying built-in, optimized basis sets is not generally recommended. |
| Re-evaluate Method | Choose a different functional and basis set that are better suited for your specific system (e.g., bulk materials vs. molecular crystals). | The composite functional B973C with mTZVP was developed for molecular systems and may not be ideal for all calculations. |
The table below details essential computational materials and their functions for troubleshooting in the CRYSTAL environment.
| Item | Function & Explanation |
|---|---|
| LDREMO Keyword | A computational reagent that systematically removes linearly dependent functions from the basis set before the start of the Self-Consistent Field (SCF) calculation, resolving the "CHOLSK" error [3]. |
| Serial Execution Environment | A diagnostic tool. Running calculations on a single process ensures clear, uncontested error logging, which is vital for initial problem identification [3]. |
| Basis Set File | The foundational set of mathematical functions (orbitals) used to construct the electron wavefunction. Its composition is the most common source of linear dependence issues [3]. |
| Alternative Functional | The core Hamiltonian describing electron interactions. If the default functional is unsuitable, switching to one parameterized for your system type (e.g., periodic solids) is a primary solution [3]. |
When an error is resolved but parallel performance is poor (e.g., no speed-up), use the following logical framework to diagnose the issue [23]:
This guide integrates diagnostic philosophy with practical steps, enabling researchers to efficiently resolve computational errors and optimize performance.
Q: What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean? A: This error indicates that the basis set you are using contains functions that are not linearly independent, which prevents the SCF calculation from proceeding. This is often caused by diffuse orbitals in the basis set, especially when atoms in your crystal structure are positioned close together, making their orbital functions overlap too much [3].
Q: I am using a built-in basis set. Why am I getting this error?
A: Even built-in, optimized basis sets (like mTZVP) are molecular basis sets and can be prone to this issue in solid-state calculations. The geometry of your specific system is a key factor; if atoms are closer together than in the systems the basis set was tested on, linear dependence can occur [3].
Q: What is the most straightforward way to fix this?
A: You can use the LDREMO keyword in your input file. This keyword tells CRYSTAL to automatically remove linearly dependent functions. It diagonalizes the overlap matrix and excludes basis functions with eigenvalues below a specified threshold (<integer> × 10⁻⁵). A good starting value is LDREMO 4 [3].
Q: Are there risks to using the LDREMO fix?
A: While LDREMO is effective, it modifies the calculation. For composite methods like B973C, which are explicitly designed for use with the unmodified mTZVP basis set, altering the basis set can introduce errors. In such cases, selecting a different functional and basis set combination that is more suited for bulk materials may be a better long-term solution [3].
Q: My calculation with LDREMO failed with a different error about "ILA DIMENSION EXCEEDED". What should I do?
A: This is a separate error related to memory allocation. You will need to increase the ILASIZE parameter in your input file. Consult the CRYSTAL user manual (page 117) for guidance on setting this value [3].
After applying a fix for the linear dependence error, it is crucial to validate that your calculation is now physically sound. A successful run that finishes without errors is the first step, but you must also verify the reasonableness of the results. The following workflow outlines the key checks to perform.
First, ensure the calculation ran to completion without any new errors.
LDREMO keyword, you must check the output for information about which basis functions were excluded. Important: This information is only printed when running in serial mode (with a single process), not in parallel [3]. Look for lines that explicitly state the number of functions removed.The "TOTAL ATOMIC CHARGES" section of the output is a critical sanity check. Unphysical charges are a strong indicator of an underlying problem. The table below summarizes what to look for.
| Atomic Species | Expected Charge Range | Signs of Trouble | Possible Cause |
|---|---|---|---|
| Sodium (Na) | ~+1.0 | Charges significantly different from +1.0 (e.g., +11.0) [3] | Severe SCF issues, incorrect basis set, or flawed input geometry. |
| Oxygen (O) | ~-2.0 to -1.5 | Positive charges, or values close to neutral. | Incomplete convergence, inappropriate functional/basis set for the system. |
| Silicon (Si) | ~+4.0 or lower (in oxides) | Strongly negative charges. | A symptom of a deeper issue in the electronic structure calculation. |
If you performed a geometry optimization, you must validate the resulting structure.
| Resource | Function | Relevance to Validation |
|---|---|---|
| Visualization Software (VESTA, Avogadro) [25] [18] | Visualizes crystal structures and volumetric data. | Essential for checking the geometric reasonableness of an optimized structure. |
| CRYSTAL User Manual | The definitive guide for all keywords and parameters. | Critical for understanding errors like ILASIZE and correctly using keywords like LDREMO [3]. |
| CRYSTAL Forum | Community and expert Q&A platform. | Invaluable for finding solutions to specific errors and understanding best practices [3]. |
| ORCA_CrystalPrep / critic2 [26] [25] | Tools for preparing and analyzing crystal structures. | Useful for generating supercells, analyzing structural similarity (e.g., via RDF/AMD), and preparing input models [26]. |
Q: What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean in CRYSTAL?
This error indicates that the overlap matrix between the atomic basis functions in your calculation is singular and cannot be inverted, which is a critical step for solving the self-consistent field (SCF) equations. In simpler terms, some basis functions in your calculation are so similar that the code cannot treat them as independent mathematical functions, breaking the calculation [3].
Q: What are the common causes of this linear dependence?
The primary cause is the presence of too diffuse basis functions (functions with small exponents) in a system where atoms are close together. In such geometries, the tails of these diffuse functions on adjacent atoms become nearly identical, leading to mathematical linear dependence [3] [20]. This problem is particularly prevalent in:
The following table compares the two main strategic approaches to resolving the linear dependence error.
| Strategy | Description | Pros | Cons | Best For |
|---|---|---|---|---|
| Using Built-in Functionality (LDREMO) | Uses the LDREMO keyword to automatically remove functions with small eigenvalues from the overlap matrix [3]. |
- Minimal user intervention.- Preserves the integrity of the original, optimized basis set.- Systematic approach. | - May require tuning the threshold (LDREMO 4 is a good start).- In large systems, might trigger other errors (e.g., ILASIZE) [3]. |
Quick troubleshooting, especially when the basis set is generally appropriate for the system. |
| Manually Modifying the Basis Set | Manually removing diffuse functions with exponents below a certain threshold (e.g., 0.1) [3]. | - Directly addresses the root cause (diffuse functions).- User gains fine-grained control. | - Risks de-optimizing a pre-defined basis set.- Requires careful testing to ensure physical results are maintained.- Not recommended for composite methods with matched basis/functional pairs. | Advanced users, or when automatic removal is insufficient. Not recommended for methods like B973C [3]. |
| Choosing a Different Functional/Basis Set | Abandoning the problematic combination for a different one, better suited to your system [3]. | - A more robust long-term solution.- Avoids potential pitfalls of using methods outside their intended scope (e.g., molecular functionals for bulk materials). | - Requires familiarity with alternative methods.- May necessitate re-benchmarking. | Systems where the current method is a poor fit (e.g., using molecular methods for bulk materials). |
This is the recommended first step for resolving linear dependence issues.
INPUT) for your calculation.SHRINK keyword), add the following line:
The integer 4 sets the threshold for removal. Functions corresponding to eigenvalues of the overlap matrix below 4 * 10^-5 will be excluded. If the error persists, you can try increasing this value (e.g., to 5 or 6) [3].For high-precision work or when standard basis sets are problematic, a system-specific optimization can be performed. The BDIIS (Basis-set Direct Inversion in the Iterative Subspace) algorithm can be used for this purpose, as implemented in CRYSTAL [20].
Ω = E_total + γ * κ({α, d})
where κ is the condition number (ratio of largest to smallest eigenvalue of the overlap matrix) and γ is a small parameter (e.g., 0.001).αj) and contraction coefficients (dj) are optimized using a Newton-Raphson step combined with a DIIS-like extrapolation [20].The workflow for diagnosing and resolving the linear dependence error is summarized below.
Q: I am using the built-in mTZVP basis set with the B973C functional as recommended. Why am I still getting this error? The B973C functional and mTZVP basis set are composite methods primarily developed for molecular systems and molecular crystals. Using them for bulk materials can lead to this issue, as the geometry and packing of atoms in a bulk solid are different and can trigger linear dependencies. The CRYSTAL manual page 161 contains explicit warnings on this matter. The recommended solution is to choose a different functional and basis set pair designed for solid-state calculations [3].
Q: When I use LDREMO, I get a different error: "ERROR CLASSS ILA DIMENSION EXCEEDED". What should I do?
This is an unrelated error that can occur in large systems. You need to increase the ILASIZE parameter in your input file. Consult the CRYSTAL user manual (page 117) for instructions on how to set this parameter [3].
Q: Is manually modifying a built-in basis set ever a good idea? Generally, it is not recommended, especially for composite methods like B973C where the functional and basis set are designed to be used together. Modifying the basis set can introduce unknown errors and invalidate the parametrization of the method. Manual modification should be considered a last resort or an activity for expert users who can thoroughly validate the changes [3].
The following table details key "reagents" – the computational methods and inputs – used in calculations with the CRYSTAL code.
| Item | Function / Description |
|---|---|
| Basis Set (e.g., mTZVP) | A set of mathematical functions (Gaussian-Type Orbitals) centered on atoms that describe the electronic wave function. The quality and size of the basis set determine the accuracy and cost of the calculation [3] [20]. |
| Functional (e.g., B973C, PBE) | The approximation used for the exchange-correlation energy in Density Functional Theory (DFT). Different functionals are suited for different types of materials and properties [3]. |
| LDREMO Keyword | A diagnostic and corrective "reagent" that automatically removes linearly dependent basis functions from the calculation, helping to stabilize the SCF procedure [3]. |
| BDIIS Optimizer | An algorithm that performs system-specific optimization of basis set exponents and contraction coefficients, minimizing the total energy while controlling the condition number of the overlap matrix to avoid linear dependence [20]. |
| Pseudopotential (ECP) | Replaces the core electrons of an atom and their effects with an effective potential, reducing the number of explicit basis functions needed and mitigating linear dependence issues, especially for heavy elements [27]. |
A technical guide for resolving the "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" in computational chemistry calculations.
What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean? This error indicates that the basis set you are using contains functions that are not linearly independent. In simpler terms, some of the mathematical functions describing your atomic orbitals are so similar that the computational code cannot distinguish between them, causing the matrix used in the calculation to become non-invertible [3].
What are the common causes of this error? The primary causes are [3]:
I am using a built-in, optimized basis set. Why am I getting this error? Even built-in basis sets are not immune to this problem. While they are optimized, they are often designed as general-purpose sets. Whether linear dependence occurs can be highly specific to your system's geometry. A basis set that works for one molecular configuration might fail for another if the atoms are closer together in the latter [3].
Can I simply modify a built-in basis set? While technically possible, caution is strongly advised. Certain composite methods, like the B973C functional, are explicitly designed for use with a specific basis set (e.g., mTZVP). Modifying the basis set can introduce errors and invalidate the functional's parameterization [3]. It is often better to address the linear dependence through other means or to choose a different, more suitable functional and basis set pair for your system.
If you encounter this error, follow these steps to diagnose and solve the problem.
Step 1: Use the LDREMO Keyword
The most direct solution is to use the LDREMO keyword in your input file. This instructs the code to systematically identify and remove linearly dependent functions [3].
Methodology:
SHRINK keyword), add the line: LDREMO4). This integer sets the threshold for removal: functions corresponding to eigenvalues of the overlap matrix below <integer> * 10^-5 will be excluded.4. If the error persists, gradually increase this value (e.g., to 5 or 6).Important Note: This feature currently only works in serial mode (running with a single process). You must run your calculation serially to see the printed information about which basis functions were excluded [3].
Step 2: Manually Remove Diffuse Functions For advanced users comfortable with editing basis set files, you can manually remove basis functions with very small exponents.
Step 3: Re-evaluate Your Functional and Basis Set Combination If the above steps fail, the issue may be fundamental to your chosen method. Some functionals and basis sets are developed for specific types of systems (e.g., molecular crystals) and may not be suitable for bulk materials [3].
Choosing the right combination is a trade-off between accuracy and computational cost. The table below summarizes the hierarchy of standard basis sets in the BAND code, which is a good guide for similar choices in other software [13].
Table 1: Basis Set Hierarchy and Performance
| Basis Set | Description | Energy Error [eV/atom]* | CPU Time Ratio* | Recommended Use |
|---|---|---|---|---|
| SZ | Single Zeta | 1.8 | 1 | Quick tests; technically oriented [13]. |
| DZ | Double Zeta | 0.46 | 1.5 | Pre-optimization; poor for virtual orbitals [13]. |
| DZP | Double Zeta + Polarization | 0.16 | 2.5 | Geometry optimizations for organic systems [13]. |
| TZP | Triple Zeta + Polarization | 0.048 | 3.8 | Best balance of performance and accuracy [13]. |
| TZ2P | Triple Zeta + Double Polarization | 0.016 | 6.1 | Accurate description of virtual orbitals [13]. |
| QZ4P | Quadruple Zeta + Quadruple Polarization | (Reference) | 14.3 | High-accuracy benchmarking [13]. |
^Performance data is for a (24,24) carbon nanotube using the PBE functional. Energy error is the absolute error in formation energy per atom compared to the QZ4P result [13].
Guidelines for Functional Selection: The choice of functional can be as critical as the basis set. Studies have shown that the choice of DFT functional can be less important than the basis set in some contexts, such as molecule-in-cluster computations for optimizing solid-state structures [28]. However, for properties like band gaps, the functional is crucial. Meta-GGA functionals (like mBJ) and hybrid functionals (like HSE06) generally offer significant improvements over simpler GGA functionals for band gap prediction [29].
Experimental Protocol for Benchmarking: Before embarking on large-scale calculations, follow this protocol to benchmark your setup on a smaller, representative model system.
Troubleshooting Pathway for Linear Dependence Error
Table 2: Essential Research Reagent Solutions
| Item / Keyword | Function / Purpose |
|---|---|
| LDREMO | Systematically removes linearly dependent basis functions by diagonalizing the overlap matrix [3]. |
| B973C Functional | A composite method with built-in corrections. Use with caution and only with its mandated basis set (e.g., mTZVP) [3]. |
| mTZVP Basis Set | A molecular triple-zeta valence basis set with polarization. Can cause linear dependence in periodic systems [3]. |
| ωB97M-V Functional | A state-of-the-art range-separated meta-GGA functional known for good performance and avoiding common DFT pathologies [30]. |
| def2-TZVPD Basis Set | A large, high-quality Gaussian-type orbital basis set used for generating benchmark-quality data in major datasets like OMol25 [30]. |
What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean? This error indicates that the basis sets of two or more atoms in your system are too similar, causing their basis functions to overlap in a way that makes the overlap matrix non-invertible. This is a common numerical issue in quantum chemical calculations [3].
Why did my calculation fail even though I used a built-in, optimized basis set? Built-in basis sets are generalized for broad applicability. Linear dependence can arise from specific geometries in your system where atomic orbitals are positioned too close together, making even standard basis sets problematic for that particular structure [3].
What is the LDREMO keyword and how do I use it?
LDREMO is a keyword in CRYSTAL that automatically removes linearly dependent functions. You can add LDREMO followed by an integer (e.g., LDREMO 4) in the third section of your input file. The integer defines the threshold for removal (integer × 10⁻⁵). Start with a value of 4 and increase if necessary [3].
My calculation with LDREMO failed with an "ILA DIMENSION EXCEEDED" error. What should I do?
This is a separate error related to memory allocation. You will need to increase the ILASIZE parameter in your input file. Consult the CRYSTAL user manual (page 117) for guidance on setting this value [3].
Could the functional I'm using be part of the problem? Yes. Some functionals, like the B973C composite method, and associated basis sets like mTZVP, were primarily developed for molecular systems or molecular crystals. Using them for bulk materials can lead to unexpected errors, including linear dependence issues [3].
The following table outlines a systematic approach to diagnosing and resolving the basis set linear dependence error, based on the analysis of the Na₂Si₂O₅ case.
| Step | Action | Expected Outcome & Next Steps |
|---|---|---|
| 1. Initial Diagnosis | Run the calculation in serial mode to see the full error message, as parallel runs might hide it [3]. | Confirms the "CHOLSK BASIS SET LINEARLY DEPENDENT" error. Proceed to Step 2. |
| 2. Quick Fix | Add LDREMO 4 below the SHRINK keyword in your input file [3]. |
The code automatically removes functions with overlap matrix eigenvalues below 4×10⁻⁵. If it works, you are done. If you get an "ILA DIMENSION" error, see Step 4. |
| 3. System Suitability | Verify that your chosen functional and basis set are appropriate for bulk materials. The B973C/mTZVP combination is not recommended for bulk systems like Na₂Si₂O₅ [3]. | If unsuitable, the most robust solution is to choose a different, more appropriate functional and basis set. |
| 4. Advanced Adjustments | (If needed) Manually increase the ILASIZE parameter or remove very diffuse basis functions (exponents < 0.1) from the basis set [3]. |
Resolves memory issues or manually eliminates the most common cause of linear dependence. |
The logical workflow for troubleshooting this error is summarized in the diagram below.
When setting up a calculation in CRYSTAL, the "reagents" are the theoretical methods and numerical settings. The failure with Na₂Si₂O₅ highlights the importance of selecting the right components.
| Research Reagent | Function | Notes from the Na₂Si₂O₅ Case |
|---|---|---|
| B973C Functional | A composite density functional theory method. | Identified as a potential cause of the error; not recommended for bulk materials [3]. |
| mTZVP Basis Set | A molecular triple-zeta valence basis set with polarization functions. | Contains diffuse functions that can lead to linear dependence when atoms are close together [3]. |
| LDREMO Keyword | A numerical stabilizer that removes linearly dependent basis functions. | The primary tool to circumvent this error; requires serial execution for detailed output [3]. |
| ILASIZE Parameter | Controls memory allocation for integral storage. | May need to be increased if a calculation with LDREMO fails with an "ILA DIMENSION" error [3]. |
For cases where automatic removal with LDREMO is insufficient, a more hands-on approach can be taken by analyzing the basis set itself. This protocol is based on general quantum chemistry practices for managing linear dependence [31].
Protocol: Manual Basis Set Trimming to Cure Linear Dependence
94.8087090 and 92.4574853342 were identified as problematic due to their high similarity [31].What does the "ERROR CHOLSK BASIS SET LINEARLY DEPENDENT" mean? This error indicates that the basis functions in your calculation are not linearly independent. This often occurs when the system's geometry causes atomic orbitals to be too close together, making their interactions numerically indistinguishable for the code [3].
Why am I getting this error even with a built-in, optimized basis set like mTZVP? Built-in basis sets, especially molecular ones like mTZVP, often contain diffuse functions with small exponents. While generally valid, these can cause linear dependence in specific crystal structures where atoms are closer than in the systems the basis set was optimized for [3].
What is the LDREMO keyword and how do I use it?
The LDREMO keyword instructs CRYSTAL to systematically remove linearly dependent basis functions. It works by diagonalizing the overlap matrix in reciprocal space and excluding functions with eigenvalues below a defined threshold [3].
You can add it in the third section of your input file, below the SHRINK keyword. The syntax is LDREMO <integer>, where <integer> defines the threshold as <integer> * 10^-5. A good starting value is 4 [3].
Can I simply remove diffuse functions manually? Yes, manually removing basis functions with exponents below 0.1 is a common approach, as these are often the cause [3]. However, caution is advised, especially when using composite methods like B973C which are explicitly designed for a specific basis set like mTZVP. Modifying the basis set can introduce errors, and using a different functional and basis set suited for your system may be a better long-term strategy [3].
| Step | Action | Description | Considerations |
|---|---|---|---|
| 1 | Use LDREMO Keyword | Add LDREMO 4 to input. Increases threshold if error persists [3]. |
Run in serial mode for output details [3]. |
| 2 | Manual Basis Set Adjustment | Remove diffuse functions (exponent < 0.1) [3]. | Use carefully; can invalidate composite methods [3]. |
| 3 | Functional/Basis Set Reassessment | Choose a different, more suitable functional and basis set [3]. | Recommended for bulk materials vs. molecular crystals [3]. |
| 4 | Address Related Errors | Increase ILASIZE if ERROR CLASSS ILA DIMENSION EXCEEDED occurs [3]. |
Check CRYSTAL manual (page 117) for guidance [3]. |
Protocol 1: Systematic Removal of Linear Dependencies with LDREMO
SHRINK keyword, add the line LDREMO 4.LDREMO 5 or LDREMO 6) to tighten the threshold for removal [3].Protocol 2: Structure Stability Analysis via First-Principles Calculations This methodology is used to definitively identify the most stable crystal structure from multiple candidates, which inherently minimizes computational issues [32].
| Item/Software | Function |
|---|---|
| CRYSTAL Software | A quantum chemistry program for ab initio calculation of the electronic structure and properties of periodic systems. |
| B973C Functional | A composite method with built-in corrections, designed for use with the mTZVP basis set, primarily for molecular systems [3]. |
| mTZVP Basis Set | A molecular triple-zeta valence basis set with polarization functions, often paired with the B973C functional [3]. |
| VASP (Vienna Ab initio Simulation Package) | A widely used software package for performing first-principles quantum mechanical calculations using plane waves and pseudopotentials [32]. |
| CALYPSO (Crystal structure AnaLYsis by Particle Swarm Optimization) | Software for the prediction of crystal structures based on global optimization algorithms [32]. |
| LDREMO Keyword | A CRYSTAL input keyword that automatically removes linearly dependent basis functions to resolve the "CHOLSK" error [3]. |
The following diagram illustrates a robust workflow for predicting stable crystal structures, integrating steps to prevent common errors.
Resolving the 'ERROR **** CHOLSK **** BASIS SET LINEARLY DEPENDENT' in CRYSTAL requires a systematic approach, beginning with a clear understanding of its geometric and basis-set-related causes. The LDREMO keyword serves as a powerful first-line tool, though practitioners must be prepared to troubleshoot subsequent system-size errors and understand the limitations of composite methods like B973C. A critical takeaway is the importance of matching the computational method to the system, as some functionals and basis sets are designed for molecular systems, not bulk materials. For researchers in biomedical and clinical fields, establishing a robust and validated computational workflow is paramount for the reliable prediction of material properties and drug-molecule interactions. Future directions involve the increased use of machine learning for pre-screening stable configurations and the development of more robust, system-specific basis sets to circumvent these common pitfalls, ultimately accelerating the discovery of new materials and therapeutics.