Fixing ERROR **** CHOLSK **** BASIS SET LINEARLY DEPENDENT: A Comprehensive Guide for CRYSTAL Software Users

Owen Rogers Nov 27, 2025 340

This article provides a detailed guide for researchers and scientists encountering the 'ERROR **** CHOLSK **** BASIS SET LINEARLY DEPENDENT' in CRYSTAL software.

Fixing ERROR **** CHOLSK **** BASIS SET LINEARLY DEPENDENT: A Comprehensive Guide for CRYSTAL Software Users

Abstract

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.

Understanding the CHOLSK Error: Causes and Triggers of Linear Dependence

What Does 'Basis Set Linearly Dependent' Mean? A Mathematical Primer

A Researcher's FAQ on Linear Dependence

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]:

  • Use the 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.
  • Re-evaluate your functional and basis set: Some composite methods (like B973C) and their designated basis sets (like mTZVP) are optimized for molecular systems, not bulk crystals. For solid-state calculations, switching to a different, more appropriate functional and basis set is often the most robust solution.

Mathematical Foundation of Basis Sets and Linear Dependence

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].

How Linear Dependence Manifests in Calculations

The following flowchart outlines the logical process that leads to the error in a computational run, and the primary solutions available.

linear_dependence_flowchart start Start Calculation basis Employ Basis Set start->basis problem Diffuse Functions Overlap in Space basis->problem result Overlap Matrix Becomes (Nearly) Singular problem->result error ERROR: CHOLSK BASIS SET LINEARLY DEPENDENT result->error sol1 Solution 1: Automated Removal Use LDREMO Keyword error->sol1 sol2 Solution 2: Manual Curation Remove Diffuse Functions error->sol2 sol3 Solution 3: Change Method Select New Functional/Basis Set error->sol3

The Scientist's Toolkit: Key Concepts & Solutions

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.
A Protocol for Diagnosing and ResolvingERROR CHOLSK BASIS SET LINEARLY DEPENDENT

When you encounter this error in your CRYSTAL calculations, follow this structured protocol to diagnose and resolve the issue.

1. Initial Assessment & Input Check

  • Verify Basis Set Suitability: First, consult the documentation for your chosen functional (e.g., CRYSTAL manual). The manual explicitly warns that functionals like B973C and basis sets like mTZVP were developed for molecular systems, not bulk crystals [3]. If you are modeling a periodic solid, this is the most likely root cause.
  • Inspect Geometry: Examine your input crystal structure. Atoms being unusually close together can exacerbate the overlap of basis functions, triggering dependence even with typically safe basis sets [3].

2. Implementing a Solution Strategy

  • Strategy A: Use the LDREMO Keyword (Quick Fix)

    • In the third section of your CRYSTAL input file (e.g., below the SHRINK keyword), add the line LDREMO <integer>.
    • Start with a conservative tolerance like LDREMO 4. This instructs the code to remove basis functions corresponding to eigenvalues of the overlap matrix below 4 × 10⁻⁵ [3].
    • Note: This fix currently only works in serial execution mode. Parallel runs may abort without a clear error message. Run the calculation on a single process to see the diagnostic output.
    • If you encounter a subsequent 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)

    • A common approach is to manually remove diffuse Gaussian-type orbitals with exponents below a threshold, such as 0.1 [3]. However, this is not recommended for built-in, optimized basis sets as it can invalidate the method's parameterization [3].
  • Strategy C: Change Functional & Basis Set (Recommended Long-Term Solution)

    • For solid-state systems, the most robust solution is to abandon molecularly-optimized methods. Switch to a functional and basis set designed and tested for periodic calculations. This avoids the inherent linear dependence issues and ensures more physically meaningful results [3].

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.

Frequently Asked Questions (FAQs)

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.

Troubleshooting Guide

Issue: Linear Dependence in Basis Set

This guide will help you resolve the "BASIS SET LINEARLY DEPENDENT" error in CRYSTAL calculations.

Diagnosis Flowchart

G Start ERROR: CHOLSK BASIS SET LINEARLY DEPENDENT Step1 Identify the Culprit Check for diffuse orbitals with small exponents (<0.1) Start->Step1 Step2 Assess Basis Set & Functional Is this a built-in, optimized pair? (e.g., B973C/mTZVP) Step1->Step2 Step3_Manual Consider Manual Removal Remove diffuse functions manually from basis set file Step2->Step3_Manual No Step3_LDREMO Use LDREMO Keyword Add LDREMO <integer> to input file Step2->Step3_LDREMO Yes Step4 Change Method Select a different functional and basis set pair Step2->Step4 Not suited for system type Success Calculation Proceeds Step3_Manual->Success Step5 Run Calculation in Serial Mode LDREMO output is only available for single-process runs Step3_LDREMO->Step5 Step4->Success Step5->Success

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 Scientist's Toolkit: Research Reagent Solutions

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].

How System Geometry and Atom Proximity Can Trigger the Error

Troubleshooting Guide: Resolving "ERROR* CHOLSK *BASIS SET LINEARLY DEPENDENT"

This guide addresses the specific "CHOLSK" linear dependence error encountered by researchers using the CRYSTAL software for computational chemistry and material science studies.

Error Description

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].

Primary Cause: System Geometry and Atom Proximity

The error is frequently triggered by the physical arrangement of atoms in your system [3].

  • Diffuse Orbitals and Close Proximity: Basis sets, especially molecular sets like 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].
Solution Protocol

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:

  • Diagnose the Error: Confirm the error originates from linear dependence in the basis set, often due to the system's geometry and close atom proximity [3].
  • Apply the LDREMO Keyword:
    • In your CRYSTAL input file, add the keyword LDREMO in the third section (below the SHRINK keyword).
    • The syntax is 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].
    • Note: Start with a value of 4 and increase if necessary. This diagnostic information is only printed when running in serial mode (with a single process) [3].
  • Manually Modify the Basis Set:
    • If using 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].
    • Alternatively, as a more direct intervention, you can manually remove basis functions with very small exponents (e.g., below 0.1) from your basis set, as these diffuse functions are often the primary cause [3].
  • Change Functional and Basis Set:
    • If the above solutions fail, or if you are modeling bulk materials, the issue may be that your chosen functional (e.g., 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].
    • Select a different, more appropriate functional and basis set combination designed for periodic bulk systems [3].

Frequently Asked Questions (FAQs)

Why does my calculation fail with a linear dependence error even when using a built-in, optimized basis set?

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].

What should I do if using theLDREMOkeyword results in an "ILA DIMENSION EXCEEDED" error?

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].

My parallel calculation aborts without a clear error message. How can I diagnose it?

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].

Research Reagent Solutions

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].

Troubleshooting Guide: Resolving "ERROR* CHOLSK *BASIS SET LINEARLY DEPENDENT"

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.

G Start Start: ERROR CHOLSK BASIS SET LINEARLY DEPENDENT Step1 Step 1: Diagnose the Cause Identify diffuse functions in the mTZVP basis set as the likely issue Start->Step1 Step2 Step 2: Apply LDREMO Fix Add LDREMO keyword to input Start with LDREMO 4 Step1->Step2 Step3 Step 3: Check for New Error Monitor output for ILA DIMENSION EXCEEDED Step2->Step3 Step4 Step 4: Increase ILASIZE If ILA error occurs, increase ILASIZE parameter value Step3->Step4 If error occurs Success Calculation Proceeds Step3->Success If no error Step4->Step2 Retry calculation Step5 Step 5: Re-evaluate Method If errors persist, consider using a different functional and basis set Step4->Step5 If error persists Step5->Success

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].

  • Procedure:
    • Edit your input file for the CRYSTAL calculation.
    • In the third section of the input (below the SHRINK keyword), add the line: LDREMO
    • Follow this keyword with an integer on the next line. A good starting value is 4.
  • Note on Execution: This solution currently only works in serial mode (running with a single process). You will not see informative error messages or the effect of 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].

  • Procedure:
    • If you encounter the ILA error after using LDREMO, you need to increase the allocated memory.
    • In your input file, use the ILASIZE keyword.
    • Consult the CRYSTAL user manual (page 117, as of the time of the source material) for guidance on selecting an appropriate value [3].

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.

  • Procedure:
    • Consider switching to a functional and basis set that is better suited for your specific system (e.g., bulk materials).
    • Manually modifying a built-in basis set like mTZVP is not recommended, as it can introduce uncontrolled errors and invalidates the parameterized composite method [3].

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]

Frequently Asked Questions (FAQs)

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].

The Scientist's Toolkit: Research Reagent Solutions

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].

Troubleshooting Guide: Diagnosing Your CRYSTAL Error

This guide helps you diagnose and resolve the "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" and related system-size errors in CRYSTAL calculations.

Quick Diagnosis Guide
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]
Detailed Troubleshooting FAQs
How do I resolve a "BASIS SET LINEARLY DEPENDENT" error?

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].

  • Implementation: In the third section of your input file, add LDREMO followed by an integer (e.g., LDREMO 4).
  • Function: The keyword triggers the diagonalization of the overlap matrix in reciprocal space. Functions with eigenvalues below <integer> * 10^-5 are removed before the SCF step [3].
  • Note: This feature only works in serial mode (running with a single process). If you run in parallel, the job may abort without a helpful error message [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].

What does "ILA DIMENSION EXCEEDED" mean and how do I fix it?

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].

  • Cause: The calculation requires more memory for internal arrays than is currently allocated by the ILASIZE parameter [3].
  • Solution: Increase the value of the ILASIZE keyword in your input file. Consult the CRYSTAL user manual (page 117) for guidance on selecting an appropriate value [3].
How does basis set choice impact the accuracy of results like binding energies?

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].

  • Impact: Using small basis sets (e.g., cc-pVDZ, cc-pVTZ) can lead to significant BSIEs in binding energy evaluations of weakly interacting systems [10].
  • Recommendation: The 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].
Experimental Protocols
Protocol 1: Applying Counterpoise (BSSE) Correction

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):

  • Calculate the Dimer Energy: Compute the total energy of the dimer complex, E(AB), using the full dimer basis set [11].
  • Calculate Monomer Energies in Dimer Basis:
    • Calculate the energy of monomer A, E(A), in the presence of the "ghost" basis functions of monomer B (and vice versa for E(B)) [11].
    • The "ghost" atoms have no nuclei or electrons but provide their basis functions [11].
  • Compute the Corrected Binding Energy:
    • The BSSE is estimated as: BSSE = [E(A) with ghost B - E(A)] + [E(B) with ghost A - E(B)] [10].
    • The counterpoise-corrected binding energy is: EbCP = E(AB) - E(A) - E(B) - BSSE [10].

Start Start CalcDimer Calculate E(AB) (Full Dimer Basis) Start->CalcDimer CalcMonomerGhost Calculate E(A) & E(B) with Ghost Basis Functions CalcDimer->CalcMonomerGhost CalcMonomer Calculate E(A) & E(B) (Monomer Basis Only) CalcMonomerGhost->CalcMonomer ComputeBSSE Compute BSSE CalcMonomer->ComputeBSSE ComputeBinding Compute Corrected Binding Energy ComputeBSSE->ComputeBinding End End ComputeBinding->End

Protocol 2: Systematic Basis Set Investigation for Accurate Binding Energies

A systematic approach to evaluate and minimize BSIE [10].

  • Select a Basis Set Family: Choose a family like Dunning's correlation-consistent (cc-pVnZ).
  • Perform Single-Point Calculations: Calculate the binding energy for your system using a range of basis sets (e.g., cc-pVDZ, cc-pVTZ, aug-cc-pVDZ, aug-cc-pVTZ).
  • Apply Counterpoise Correction: Perform BSSE correction for each basis set.
  • Analyze Convergence: Observe how the binding energy converges as the basis set becomes larger and more complete (approaches the Complete Basis Set (CBS) limit). The study suggests aug-cc-pVTZ often performs well without CP correction, while aug-cc-pVDZ is sufficient with CP correction [10].
The Scientist's Toolkit: Essential Research Reagents & Keywords
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.
Decision Workflow for Error Resolution

Follow this logical pathway to diagnose and act upon the errors discussed in this guide.

Start Start ErrorOccurs Error During CRYSTAL Calculation Start->ErrorOccurs RunSerial Run calculation in SERIAL mode to see full error message ErrorOccurs->RunSerial IsItCHOLSK Is the error 'BASIS SET LINEARLY DEPENDENT'? IsItILA Is the error 'ILA DIMENSION EXCEEDED'? IsItCHOLSK->IsItILA No UseLDREMO Add LDREMO keyword to input IsItCHOLSK->UseLDREMO Yes IncreaseILASIZE Increase ILASIZE keyword in input file IsItILA->IncreaseILASIZE Yes RunSerial->IsItCHOLSK CheckBasis Check functional/basis set compatibility for your system UseLDREMO->CheckBasis ConsiderChange Consider different functional/basis for bulk materials CheckBasis->ConsiderChange

Step-by-Step Solutions: Implementing the LDREMO Keyword and Basis Set Adjustments

What is the "ERROR* CHOLSK *BASIS SET LINEARARLY DEPENDENT" and what causes it?

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:

  • Diffuse Orbitals: Basis functions with very small exponents (highly diffuse) are often the culprit, especially when atoms are close together in the geometry [3].
  • Geometric Factors: A specific atomic arrangement can cause orbitals to be too close in space, leading to linear dependence even with a basis set that works for other structures [3].
  • Large Displacements in Geometry Scans: During tasks like SCANMODE, significant atomic displacements from the equilibrium geometry can alter interatomic distances enough to trigger linear dependence in a previously stable basis set [12].

How does the LDREMO keyword work to fix this error?

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 LDREMO can sometimes trigger other, unrelated errors like ILA DIMENSION EXCEEDED, which may require increasing memory parameters like ILASIZE [3].

The following diagram illustrates the logical workflow for resolving this error, positioning LDREMO as the primary automated remedy.


The Scientist's Toolkit: Research Reagent Solutions

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].

Alternative Solutions and Best Practices

Manually Remove Diffuse Functions

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].

Re-evaluate Your Functional and Basis Set

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].

Refine Geometry Scan Parameters

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].

Frequently Asked Questions (FAQs)

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].


Troubleshooting Guide

Problem Analysis

The flowchart below outlines the logical process for diagnosing and resolving the "BASIS SET LINEARLY DEPENDENT" error.

LDREMO_Workflow Start ERROR CHOLSK BASIS SET LINEARLY DEPENDENT Step1 Run calculation in SERIAL mode Start->Step1 Step2 Add 'LDREMO 4' to input file Step1->Step2 Step3 Check output for removed functions Step2->Step3 Step4 Does calculation complete successfully? Step3->Step4 Step5 Error persists? (No SCF convergence) Step4->Step5 No Success Success! Problem Resolved Step4->Success Yes Step6 Gradually increase LDREMO value (e.g., 5, 6) Step5->Step6 Yes Step7 Encounter 'ILA DIMENSION EXCEEDED'? Step5->Step7 No Step6->Step4 Step8 Increase ILASIZE parameter in input Step7->Step8 Yes Step9 System is very large or complex? Step7->Step9 No Step8->Step4 Step9->Step6 No Step10 Consider alternative functional/basis set Step9->Step10 Yes

Step-by-Step Resolution Protocol

  • Initial Diagnosis & Setup

    • Confirm the Error: The job fails with "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" in the output file [3].
    • Switch to Serial Mode: To get detailed diagnostic information about which basis functions are causing the issue, run your CRYSTAL calculation on a single process (serial mode) [3].
  • Primary Intervention: Applying LDREMO

    • Modify Input File: In the third section of your CRYSTAL input file (below the SHRINK keyword is a suitable location), add the following line:

    • Execute and Monitor: Run the calculation in serial mode. Check the output file for messages confirming that linearly dependent functions have been identified and removed [3].
  • Threshold Optimization

    • If the error persists or the SCF fails to converge, the threshold may be too strict. Gradually increase the integer value (e.g., to 5, then 6) and rerun the calculation [3].
    • Use the table below to guide your selection of the LDREMO threshold integer.

LDREMO Threshold Selection Guide

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 Scientist's Toolkit: Research Reagent Solutions

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].

Running Calculations in Serial Mode to Diagnose the Error

A essential troubleshooting guide for CRYSTAL software users encountering the CHOLSK error.

Why am I getting the "ERROR* CHOLSK *BASIS SET LINEARLY DEPENDENT" and what does it mean?

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.

Why must I run the calculation in serial mode to diagnose this error?

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.

How do I fix a linearly dependent basis set?

You have several options to resolve linear dependence, ranging from simple keyword use to more fundamental changes in your computational approach.

Use the LDREMO Keyword

The most direct method is to use the LDREMO keyword in the third section of your CRYSTAL input file [3].

  • Function: Systematically removes linearly dependent functions by diagonalizing the overlap matrix in reciprocal space before the SCF step.
  • Implementation: Add the following lines to your input, typically below the SHRINK keyword:

  • Mechanism: Basis functions corresponding to eigenvalues of the overlap matrix below <integer> * 10^-5 will be excluded. Start with an integer value of 4 and increase if needed [3].
  • Important Note: This feature only works in serial execution mode [3].
Manually Remove Diffuse Functions

Linear dependence is frequently caused by basis functions with very small exponents (diffuse functions) [3].

  • Procedure: Manually edit your basis set file to remove functions with exponents below a threshold, typically 0.1.
  • Caution: Modifying built-in, optimized basis sets is not generally recommended as it can introduce errors, particularly for composite methods like B973C which are explicitly designed for use with specific basis sets like mTZVP [3].
Re-evaluate Your Functional and Basis Set Choice

The underlying issue might be an unsuitable combination of functional, basis set, and system.

  • System Suitability: The B973C functional and mTZVP basis set were primarily developed for molecular systems and molecular crystals. Using them for bulk materials can lead to such issues [3].
  • Solution: If you are modeling a bulk material, consider switching to a different functional and basis set better suited for periodic solid-state calculations [3].
Check Your System's Geometry

The geometry of your system can induce linear dependence, even with a basis set that works for other structures [3] [12].

  • Cause: If atoms in your system are closer together than in other systems where the basis set worked, it can cause orbital overlap that leads to linear dependence [3].
  • Related Context: This error can also occur during geometry-based calculations like SCANMODE, where large atomic displacements from the equilibrium geometry can create problematic interatomic distances [12].
Essential Research Reagent Solutions

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].
Experimental Protocol: Serial Execution for Error Diagnosis

Purpose: To force CRYSTAL to output a detailed error message for the "CHOLSK" failure, enabling an effective solution.

Procedure:

  • Modify Job Execution: Run your CRYSTAL calculation using a single processor only. This is typically done by not using the mpirun or mpiexec commands, or by specifying a single process if required by your job system.
  • Examine Output: Scrutinize the text output file (.out) for the detailed "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" message and any accompanying information.
  • Implement LDREMO: Once confirmed, add the LDREMO keyword with a starting value of 4 to your input file.
  • Re-run in Serial: Execute the job again in serial mode with LDREMO. The output will now list which basis functions were excluded during the calculation.
  • Troubleshoot Further: If the problem persists or you encounter a new error (e.g., ILA DIMENSION EXCEEDED), you may need to increase the ILASIZE parameter or consider more fundamental changes to your basis set or functional [3].

G Start CHOLSK Error in Parallel Run Serial Run Calculation in Serial Mode Start->Serial No error details Diagnose Obtain Detailed Error Message Serial->Diagnose Forces verbose output Solution Implement Solution Diagnose->Solution Based on diagnosis note Serial execution is crucial for LDREMO to function Diagnose->note

Diagnostic workflow for CHOLSK error

After implementing LDREMO, you might encounter a new error: ERROR CLASSS ILA DIMENSION EXCEEDED - INCREASE ILASIZE 6000 [3].

  • Cause: This is an unrelated error linked to the overall size of your system and the calculation.
  • Solution: Consult the CRYSTAL user manual (page 117) and use the ILASIZE keyword in your input, increasing its value from the default [3].

Why does theERROR CHOLSK BASIS SET LINEARLY DEPENDENToccur?

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].

How to fix it: Manual removal of diffuse functions

A direct method to resolve linear dependence is to manually identify and remove the most diffuse basis functions.

  • Identification: Systematically examine your basis set and look for functions with exponents (a) below a typical threshold of 0.1 [3]. These are the primary suspects for causing numerical issues.
  • Removal: Create a modified version of your basis set file where you comment out or delete the lines corresponding to these low-exponent 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)

A structured protocol for manual intervention

Follow these steps to manually remove diffuse functions from your basis set:

  • Locate Basis Set File: Identify the specific basis set file you are using for your calculation.
  • Create a Backup: Before making any changes, create a copy of the original basis set file.
  • Scan for Exponents: Open the file and scan for lines defining atomic orbitals and their exponents.
  • Apply Threshold: For each atom type, locate the most diffuse shells (typically the ones with the smallest exponents). Functions with an exponent below 0.1 should be considered for removal [3].
  • Selective Removal: Comment out or delete the lines corresponding to the identified low-exponent functions. It is often prudent to remove one shell at a time and test if the error persists.
  • Test the Calculation: Run your CRYSTAL calculation again with the modified 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.

Start ERROR: CHOLSK Basis Set Linearly Dependent Cause Primary Cause: Diffuse functions (Exponent < 0.1) Start->Cause Solution Solution Paths Cause->Solution Manual Manual Intervention Solution->Manual Auto Automated Removal (LDREMO Keyword) Solution->Auto Step1 1. Locate basis set file Manual->Step1 Step2 2. Create a backup Step1->Step2 Step3 3. Scan for exponents (a) Step2->Step3 Step4 4. Identify functions with a < 0.1 Step3->Step4 Step5 5. Remove selected functions Step4->Step5 Step6 6. Test calculation Step5->Step6

The scientist's toolkit: Research reagent solutions

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].

Important considerations and best practices

  • Built-in Basis Sets: Even built-in, optimized basis sets (like mTZVP) are not immune to this problem, especially when applied to periodic bulk materials instead of the molecules they were originally designed for [3].
  • Functional Compatibility: The B973C functional is mandated for use with the mTZVP basis set. Modifying the basis set can introduce errors, and using this combination for bulk materials is not recommended. If manual intervention fails, consider switching to a functional and basis set pair that is better suited for solid-state calculations [3].
  • Alternative Approach: CRYSTAL provides the LDREMO keyword for automated removal of linearly dependent functions. This can be a less intrusive first step than manually editing the basis set [3].

Frequently Asked Questions

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].

  • Implementation Note: This feature currently only works in serial mode (running with a single process). If you run it in parallel, the job may abort without clear error messages [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].

Troubleshooting Guide

Immediate Actions

  • Use the 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].
  • Switch Functional/Basis Set: If you are not tied to a specific composite method, consider switching to a functional and basis set known for robustness in periodic calculations. The TZP (Triple Zeta with Polarization) level is often recommended as it offers a good balance of accuracy and computational efficiency [13].

Systematic Basis Set Selection

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

Advanced Strategy: Basis Set Optimization

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].

The Scientist's Toolkit

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].

Experimental Protocol: Resolving Linear Dependence

The following workflow provides a structured protocol for diagnosing and resolving the basis set linear dependence error.

G Start Start: Encounter CHOLSK Error Step1 Run Calculation in Serial Mode Start->Step1 Diagnose Step2 Add LDREMO 4 to Input Step1->Step2 Identify cause Step3 Error Resolved? Step2->Step3 Step4 Check for ILA Error Step3->Step4 No End Error Fixed Proceed with Research Step3->End Yes Step5 Increase ILASIZE Step4->Step5 Yes Step6 Select New Functional/Basis Step4->Step6 No Step5->Step3 Step6->End

Advanced Troubleshooting: Resolving LDREMO Failures and System-Size Errors

Addressing the 'ILA DIMENSION EXCEEDED' Error After LDREMO

Frequently Asked Questions

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].

Troubleshooting Guide
Immediate Solution: Increase the ILASIZE Parameter

The direct fix is to increase the dimension of the internal integral buffer using the ILASIZE keyword in your CRYSTAL input file [3].

  • Location: Add the ILASIZE keyword to the third section of your input file, typically below the SHRINK keyword.
  • Setting a Value: Start with a value larger than the default. The specific value depends on your system's size and basis set. You may need to experiment by progressively increasing the value until the error disappears. Consult the CRYSTAL user manual (page 117) for more details [3].
Underlying Cause and Context

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].

Alternative Solution: Re-evaluate Your Functional and Basis Set

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].

Experimental Protocol: Resolving Basis Set Linear Dependence

This protocol outlines the steps to diagnose and fix the error chain from linear dependence to exceeded internal dimensions.

G Start Start Calculation ErrorCHOLSK ERROR CHOLSK BASIS SET LINEARLY DEPENDENT Start->ErrorCHOLSK ApplyLDREMO Apply LDREMO Keyword ErrorCHOLSK->ApplyLDREMO ErrorILA ERROR CLASSS ILA DIMENSION EXCEEDED ApplyLDREMO->ErrorILA IncreaseILASIZE Increase ILASIZE Parameter ErrorILA->IncreaseILASIZE Success Calculation Succeeds IncreaseILASIZE->Success Reassess Re-assess Functional/ Basis Set Choice IncreaseILASIZE->Reassess If error persists Reassess->Success

The Scientist's Toolkit: Key Research Reagent Solutions

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].

Increasing ILASIZE and Other Key Parameters for Large Systems

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.

Frequently Asked Questions

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:

  • Diffuse basis functions with small exponents are present, especially in systems where atoms are close together [3]
  • The system geometry brings atoms sufficiently close that their basis function overlaps create dependencies [3]
  • Using molecular basis sets (like mTZVP) for bulk materials where proximity issues are more likely [3]

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:

  • The LDREMO algorithm requires additional memory and computational resources to handle the linear dependence resolution
  • Larger systems naturally demand more storage for intermediate arrays
  • The default ILASIZE 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:

  • First try the LDREMO keyword approach before modifying basis sets directly
  • If linear dependence persists, consider that your system might be outside the intended application range of the functional/basis set combination [3]
  • For bulk materials, select a functional and basis set specifically developed for periodic systems rather than molecular ones [3]

Q4: Are there alternative solutions if increasing ILASIZE doesn't resolve the issue?

If increasing ILASIZE doesn't solve the problem or introduces new instability:

  • Verify your system geometry - atomic distances might be unrealistically close
  • Try a different basis set with fewer diffuse functions
  • Consider using pseudopotentials for heavier elements to reduce basis set size [16]
  • Switch computational libraries - some users report success moving from OpenBLAS to MKL for Cholesky decomposition [17]
Troubleshooting Guide
Resolving "CHOLSK BASIS SET LINEARLY DEPENDENT"

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:

  • Add the following to the third section of your CRYSTAL input file (below the SHRINK keyword):

  • Start with an integer value of 4 (corresponding to eigenvalues below 4×10⁻⁵) [3]
  • If linear dependence persists, gradually increase the integer value (e.g., 5, 6, ...)
  • Run in serial mode initially to view diagnostic information about excluded functions [3]

Method 2: Manual Basis Set Modification

Implementation Protocol:

  • Identify basis functions with exponents below 0.1 in your basis set file [3]
  • Remove these diffuse functions, particularly those with the smallest exponents
  • Create a modified basis set file for your specific calculation
  • Test the modified basis set on a smaller version of your system first

Precautions: Manual modification may introduce errors, particularly for composite methods like B973C which are specifically designed for particular basis sets [3].

Resolving "ILA DIMENSION EXCEEDED"

Method: Increasing ILASIZE Parameter

The ILASIZE parameter controls the memory allocation for certain arrays in CRYSTAL calculations [3].

Implementation Protocol:

  • Check your output file for the current ILASIZE value (e.g., "INCREASE ILASIZE 6000")
  • Add the ILASIZE keyword to your input file with an increased value:

  • Increase the value significantly above the suggested amount (e.g., if 6000 is suggested, try 9000 or 12000)
  • For very large systems, you may need to increase related parameters like MAXDIZE or MAXBUF as well
Parameter Optimization Guide
Key Parameters for Large Systems
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]
Research Reagent Solutions
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]
Experimental Protocols
Comprehensive Workflow for Large System Calculation

Phase 1: Preliminary Assessment

  • Evaluate system size and element types
  • Select appropriate functional and basis set for your system type (molecular vs. periodic)
  • Check interatomic distances for potential overlap issues

Phase 2: Initial Calculation Attempt

  • Start with standard parameters and basis set
  • If linear dependence error occurs, proceed to Phase 3
  • If ILASIZE error occurs, proceed to Phase 4

Phase 3: Addressing Linear Dependence

  • Add LDREMO 4 to input file
  • Run calculation in serial mode to monitor excluded functions
  • If error persists, gradually increase LDREMO value
  • If LDREMO causes ILASIZE error, implement Phase 4 solutions

Phase 4: Managing Memory Parameters

  • Increase ILASIZE by 50-100% above recommended value
  • For very large systems, consider increasing related memory parameters
  • If computational resources allow, try alternative mathematical libraries

Phase 5: Validation

  • Compare results with smaller test systems where possible
  • Verify physical reasonableness of electronic properties
  • Confirm convergence with parameter variations

G Start Start Calculation with Large System Error1 ERROR CHOLSK BASIS SET LINEARLY DEPENDENT Start->Error1 Linear dependence detected Solution1 Apply LDREMO Keyword Error1->Solution1 Success Calculation Successful Error1->Success LDREMO effective Error2 ERROR CLASSS ILA DIMENSION EXCEEDED Solution2 Increase ILASIZE Parameter Error2->Solution2 Solution1->Error2 Insufficient memory allocation Solution2->Success

Figure 1: Large system error resolution workflow.

Computational Environment Considerations

The stability of Cholesky decomposition can be influenced by your computational environment:

  • Mathematical Libraries: OpenBLAS 0.3.19 has a confirmed bug affecting Cholesky decomposition on AVX512 systems [17]
  • Parallel vs. Serial Execution: Diagnostic information about excluded basis functions with LDREMO is only available in serial execution mode [3]
  • System Architecture: The error "leading minor of order XX is not positive definite" may indicate numerical precision issues related to your BLAS/LAPACK implementation [17]

For optimal stability with large systems, consider using Intel MKL libraries rather than OpenBLAS, particularly if working with AVX512-capable processors [17].

Optimizing SHRINK and K-Point Settings for Better Convergence

A technical guide for researchers tackling computational convergence challenges in materials science and drug development.

Frequently Asked Questions

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]:

  • Metals generally require a denser k-point sampling (higher SHRINK values).
  • Insulators, semiconductors, and molecular crystals can typically use a coarser grid.
  • Smaller unit cells need more k-points, whereas larger supercells can be converged with fewer.

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].

Troubleshooting Guides
Guide 1: Resolving "BASIS SET LINEARLY DEPENDENT" Errors

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:

  • Initial Assessment: Check if your system is appropriate for your chosen functional and basis set. Composite methods like B973C with the mTZVP basis set were primarily developed for molecular systems and molecular crystals, and may not be suitable for bulk materials [3].
  • Use the LDREMO Keyword: Add the 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.
    • Start with a value of 4 (e.g., LDREMO 4), which excludes basis functions corresponding to eigenvalues of the overlap matrix below 4 * 10^-5 [3].
    • Important Note: This feature currently only works in serial mode (running with a single process). You must run your test calculation serially to see the diagnostic information about excluded functions [3].
  • Manual Basis Set Adjustment: As an alternative, you can manually remove diffuse basis functions with very small exponents (e.g., below 0.1) [3].
  • Geometry Optimization: Consider running a geometry optimization to relax the crystal structure to a more stable configuration, which may alleviate the proximity of basis functions [18].

The following diagram illustrates the logical workflow for diagnosing and fixing this error:

start ERROR: BASIS SET LINEARLY DEPENDENT check_basis Check Basis/Functional Compatibility start->check_basis try_ldremo Add LDREMO Keyword (Run in Serial Mode) check_basis->try_ldremo Basis is suitable geo_opt Perform Geometry Optimization check_basis->geo_opt Basis not suitable for bulk material manual_adj Manually Remove Diffuse Functions try_ldremo->manual_adj Unsuccessful resolved Error Resolved try_ldremo->resolved Successful manual_adj->resolved geo_opt->resolved

Guide 2: Performing a K-Point (SHRINK) Convergence Study

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:

  • Define Target Quantity: Identify the key property you want to converge (e.g., total energy per atom, equilibrium lattice parameter, or bulk modulus).
  • Set Up Calculations: Create a series of single-point energy calculations for the same crystal structure, progressively increasing the SHRINK value (e.g., 4, 8, 12, 16, 24).
  • Run and Extract Data: Execute the calculations and record your target quantity from each output file.
  • Analyze Results: Plot the target quantity against the 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].
  • Select Optimal Value: Choose the smallest 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.

The Scientist's Toolkit

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].

Troubleshooting Guides

Guide 1: Resolving "ERROR* CHOLSK *BASIS SET LINEARLY DEPENDENT"

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

  • Presence of diffuse basis functions with small exponents in a densely packed crystal structure [3].
  • Using a basis set and functional combination that was developed for molecular systems on bulk materials [3].
  • The geometry of your specific system causes atomic orbitals to be closer together than in systems where the same basis set previously worked [3].

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.

  • Locate Input File: Identify the CRYSTAL input file for your calculation.
  • Add Keyword: In the third section of the input file (below the 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.
  • Run in Serial Mode: Note that the output information about excluded functions is only available when running in serial mode (with a single process) [3].

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.

  • Identify Problematic Functions: Look for basis functions with exponents below a threshold of 0.1 in your basis set file [3].
  • Create a Modified Basis Set: Remove these low-exponent functions to create a less diffuse, modified 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].

  • Select a New Functional: Choose a density functional that is well-suited for solid-state calculations.
  • Choose a Compatible Basis Set: Select a basis set that is appropriate for your new functional and for periodic systems. Refer to the Basis Set Selection Guide below.

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]

Guide 2: Basis Set Selection for Solid-State Calculations

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]

Frequently Asked Questions (FAQs)

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].

Workflow Visualization

Troubleshooting workflow for linear dependence errors

The Scientist's Toolkit: Research Reagent Solutions

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.

Best Practices for Parallel vs. Serial Execution in Error Diagnosis

Frequently Asked Questions (FAQs)

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]:

  • Performance Regression: The parallel execution is slower than expected or does not scale linearly with resources.
  • Execution Plan Issues: The system chooses a suboptimal serial or parallel plan.
  • Workload Skew: The computational load is unevenly distributed across processes, leaving some idle while others are saturated.
  • Collisions: Simultaneous processes interfere with each other by manipulating shared product state or automation code, leading to intermittent failures.

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].

Troubleshooting Guide: A Systematic Approach to Errors
Step 1: Isolate the Error

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].

Step 2: Qualify the Symptoms (DESQ Method)

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].

  • Serial View: Could one primary issue (e.g., a problematic basis set function) cause all the observed symptoms?
  • Parallel View: Are there multiple, independent issues at play (e.g., a basis set error, a memory allocation problem, and an I/O buffer issue) that need to be addressed separately?

The following workflow outlines this diagnostic process:

G Start Computational Error Occurs Step1 Step 1: Isolate in Serial Mode Start->Step1 Step2 Step 2: Qualify Symptoms (DESQ) Step1->Step2 Step2_Serial Serial View: Seek common cause Step2->Step2_Serial Step2_Parallel Parallel View: Treat as independent Step2->Step2_Parallel Step3 Step 3: Apply Targeted Fix Step2_Serial->Step3 Step2_Parallel->Step3 Resolve Error Diagnosed & Resolved Step3->Resolve

Step 3: Apply Targeted Fixes

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 Scientist's Toolkit: Key Research Reagent Solutions

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].
Diagnosing Parallel Performance Problems

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]:

G PerfProblem Poor Parallel Performance Q_Regression Is there performance regression? PerfProblem->Q_Regression Q_PlanChange Is there an execution plan change? Q_Regression->Q_PlanChange Yes Q_ParallelPlan Is the plan parallel? Q_PlanChange->Q_ParallelPlan Yes CheckSkew Check for Workload Skew Q_ParallelPlan->CheckSkew Yes Q_SerialPlan Is the plan serial? Q_ParallelPlan->Q_SerialPlan No CheckResources Check CPU/Memory Resources CheckSkew->CheckResources CheckStats Analyze V$PQ_TQSTAT stats CheckSkew->CheckStats ForceParallel Force parallel plan with hints Q_SerialPlan->ForceParallel Yes ImproveStats Improve table statistics Q_SerialPlan->ImproveStats Yes

This guide integrates diagnostic philosophy with practical steps, enabling researchers to efficiently resolve computational errors and optimize performance.

Validation and Strategy Comparison: Ensuring Accuracy and Efficiency

FAQ: Troubleshooting Linear Dependence in CRYSTAL

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].

Validating Your Solution: A Step-by-Step Protocol

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.

G Start Fix Applied (LDREMO or New Basis Set) Check1 Check 1: Job Completion Did the SCF run finish without errors? Start->Check1 Check2 Check 2: Output Scrutiny Are there warnings about removed functions? Check1->Check2 Yes Investigate Investigate Further Check input parameters and system suitability Check1->Investigate No Check3 Check 3: Charge Analysis Are the final atomic charges physically reasonable? Check2->Check3 Check4 Check 4: Geometry Stability Is the optimized geometry structurally sound? Check3->Check4 Charges OK Check3->Investigate Charges Unphysical Success Validation Successful Proceed with Analysis Check4->Success Geometry OK Check4->Investigate Geometry Broken

Step 1: Confirm Job Completion and Output Scrutiny

First, ensure the calculation ran to completion without any new errors.

  • Action: Check the main output file for the final timing statistics and a clean termination message. A successful job will end with a clear summary of the CPU time used [3].
  • Validate LDREMO: If you used the 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.

Step 2: Analyze Final Atomic Charges

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.

  • Action: Locate the "TOTAL ATOMIC CHARGES" in your output file [3]. Compare the calculated charges against expected chemical intuition and values from the literature.
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.

Step 3: Check for Geometric Reasonableness

If you performed a geometry optimization, you must validate the resulting structure.

  • Action: Use visualization software (e.g., VESTA, Avogadro) to examine the final optimized structure [25] [18].
  • What to look for:
    • Bond Lengths: Compare with experimental or known theoretical values. Drastic deviations suggest a problem.
    • Structural Integrity: Ensure the crystal lattice is still intact, with no broken bonds or atoms placed in nonsensical positions.
    • Symmetry: Check if the expected symmetry of the crystal is preserved.
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].

Troubleshooting Guide: Resolving "ERROR* CHOLSK *BASIS SET LINEARLY DEPENDENT"

Understanding the Error and Its Causes

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:

  • Densely packed solids and certain molecular geometries.
  • Built-in molecular basis sets (like mTZVP) when used for solid-state systems, as they are often optimized for isolated molecules and contain more diffuse functions than necessary for crystals [3].
  • Attempting to use very large, high-quality basis sets (e.g., quadruple-zeta) where the exponent values can become very similar [20].

Solution Strategies: Built-in Basis Sets vs. Modified Basis Sets

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).

Step-by-Step Experimental Protocols

Protocol A: Using the LDREMO Keyword

This is the recommended first step for resolving linear dependence issues.

  • Locate the Input File: Identify the CRYSTAL input file (e.g., INPUT) for your calculation.
  • Insert the Keyword: In the third section of the input file (below the 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].
  • Run in Serial Mode: The diagnostic information about which basis functions are removed is only printed when running CRYSTAL in serial mode (with a single process). Running in parallel may abort without helpful error messages [3].
  • Check Output: In the output file, look for messages confirming the removal of basis functions. A successful run will proceed to the SCF cycle.
Protocol B: System-Specific Basis Set Optimization (Advanced)

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].

  • Define the Functional: The algorithm minimizes a functional, Ω, that includes both the total energy of the system and a penalty term to control the condition number of the overlap matrix to prevent linear dependence [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).
  • Iterative Optimization: The algorithm performs an iterative procedure where basis set exponents (αj) and contraction coefficients (dj) are optimized using a Newton-Raphson step combined with a DIIS-like extrapolation [20].
  • Validation: The resulting optimized basis set should be validated against known properties (e.g., lattice parameters, bond lengths) to ensure it maintains transferability and physical accuracy.

The workflow for diagnosing and resolving the linear dependence error is summarized below.

G Start ERROR: CHOLSK BASIS SET LINEARLY DEPENDENT Step1 Run calculation in serial mode using LDREMO keyword Start->Step1 Step2 Check output for details on removed functions Step1->Step2 Step3 Error resolved? Step2->Step3 Step4 Manually remove very diffuse functions (exp < 0.1) Step3->Step4 No Step5 Consider switching functional and basis set pair Step3->Step5 No / For bulk materials Success Calculation Proceeds Step3->Success Yes Step4->Step1 Step5->Success

FAQ on Basis Set Linear Dependence

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].

Research Reagent Solutions: Essential Computational Tools

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].

Benchmarking Different Functionals and Basis Sets for Your System

A technical guide for resolving the "ERROR * CHOLSK * BASIS SET LINEARLY DEPENDENT" in computational chemistry calculations.

Frequently Asked Questions

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]:

  • Diffuse Functions: The presence of basis functions with very small exponents (highly diffuse) is a frequent culprit.
  • Molecular Geometry: In some crystal structures or molecular configurations, atomic orbitals can be positioned too close together. This spatial proximity can cause their basis functions to overlap excessively, leading to linear dependence.
  • Large Basis Sets: Using very large basis sets (e.g., triple- or quadruple-zeta with multiple polarization functions) increases the chance of including functions that are nearly linearly dependent.

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.

Troubleshooting Guides
Initial Quick Fixes

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:

    • In the third section of your CRYSTAL input file (typically below the SHRINK keyword), add the line: LDREMO
    • Follow it with an integer (e.g., 4). This integer sets the threshold for removal: functions corresponding to eigenvalues of the overlap matrix below <integer> * 10^-5 will be excluded.
    • Start with a value of 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.

  • Protocol: Identify and remove any Gaussian-type orbital (GTO) primitives or Slater-type orbitals (STOs) with exponents below a typical threshold of 0.1 [3].

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].

  • Action: Consult the software manual (e.g., the CRYSTAL user manual warns about the applicability of the B973C functional on page 161 [3]) and switch to a functional and basis set that are better suited for your specific system (e.g., a solid-state material versus an isolated molecule).
Benchmarking and Selecting Functionals and Basis Sets

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.

  • Define a Test Set: Select a smaller molecule or a unit cell that is chemically similar to your target system.
  • Select Candidate Methods: Choose 2-3 different functional and basis set combinations. For example:
    • Combination A: A hybrid functional (e.g., HSE06) with a TZP basis set.
    • Combination B: A meta-GGA functional (e.g., SCAN or B97M-V) with a DZP basis set.
    • Combination C: A GGA functional (e.g., PBE) with a TZ2P basis set.
  • Calculate Benchmark Properties: Run single-point energy or geometry optimization calculations for each combination. Relevant properties can include:
    • Formation energy per atom.
    • Bond lengths and angles.
    • Band gap (for solids).
    • Reaction or activation energies (where applicable).
  • Compare Results: Compare the results against reliable experimental data or higher-level theoretical calculations. The combination that offers the best compromise between accuracy and computational cost for your property of interest should be selected for the production calculations on your full system.

Start Encounter ERROR CHOLSK Step1 Step 1: Use LDREMO keyword in serial mode Start->Step1 Step2 Step 2: Manually remove basis functions with exponents < 0.1 Step1->Step2 if error persists Step3 Step 3: Switch functional/ basis set combination Step2->Step3 if error persists Benchmark Benchmark new combination on a smaller test system Step3->Benchmark Success Error Resolved Proceed with Calculation Benchmark->Success

Troubleshooting Pathway for Linear Dependence Error

The Scientist's Toolkit

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].

Frequently Asked Questions

  • 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].

Troubleshooting Guide

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.

Start ERROR: CHOLSK BASIS SET LINEARLY DEPENDENT Step1 Run calculation in serial mode Start->Step1 Step2 Add LDREMO 4 keyword to input file Step1->Step2 Step3 Check functional/basis set suitability for bulk materials Step2->Step3 Error persists or other error occurs Solved Problem Solved Step2->Solved Works Step4 Advanced fixes: Increase ILASIZE or remove diffuse functions Step3->Step4 Problem-specific tuning needed Step3->Solved Change functional/ basis set Step4->Solved

The Scientist's Toolkit: Research Reagent Solutions

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].

Experimental Protocols: A Deeper Diagnostic Method

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

  • Identify Candidate Functions: Export the full list of exponents for each atom type in your basis set. The goal is to find functions that are numerically too similar.
  • Locate Similar Exponents: Analyze the exponents percentage-wise. Pairs of exponents with very small percentage differences are the most likely candidates for causing linear dependence [31]. For example, in another system, exponents of 94.8087090 and 92.4574853342 were identified as problematic due to their high similarity [31].
  • Remove and Test: Remove one function from the most similar pair. Recompute the overlap matrix for a small test system (which is computationally cheap). Check if the number of linear dependencies has decreased.
  • Iterate: Repeat steps 2 and 3, removing one function at a time from the next most similar pair, until the overlap matrix has no eigenvalues below the tolerance [31].

Long-Term Workflow Recommendations for Stable CRYSTAL Calculations

Frequently Asked Questions

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].

Troubleshooting Guide: Resolving Linear Dependence
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].
Experimental Protocols for Stable Calculations

Protocol 1: Systematic Removal of Linear Dependencies with LDREMO

  • Modify Input: In the third section of your CRYSTAL input file, beneath the SHRINK keyword, add the line LDREMO 4.
  • Run in Serial Mode: Execute the calculation using a single process to ensure diagnostic information about excluded functions is printed [3].
  • Iterate if Necessary: If the error persists, gradually increase the integer value (e.g., 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].

  • Structure Prediction: Use a crystal structure prediction tool like CALYPSO (which employs a particle swarm optimization algorithm) to generate numerous potential low-energy structures for your system [32].
  • Geometry Optimization: Perform initial structure optimization using a computationally efficient method, such as DFT with a GGA functional (e.g., PBE) [32].
  • Stability Screening:
    • Thermodynamic Stability: Calculate the formation enthalpy for all predicted structures to filter out thermodynamically unstable ones [32].
    • Mechanical Stability: Calculate the elastic constants of the remaining structures and apply the mechanical stability criteria for their crystal class. Eliminate mechanically unstable structures [32].
    • Dynamical Stability: Perform phonon calculations on the mechanically stable structures. Those with no imaginary phonon frequencies (no soft modes) are dynamically stable and represent the most stable configurations [32].
The Scientist's Toolkit: Essential Research Reagents & Materials
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].
Workflow for Stable Crystal Structure Prediction

The following diagram illustrates a robust workflow for predicting stable crystal structures, integrating steps to prevent common errors.

Start Start: System of Interest CSP Structure Prediction (CALYPSO) Start->CSP GeoOpt Geometry Optimization (DFT-PBE) CSP->GeoOpt BasisSetIssue Basis Set Linear Dependence Error? GeoOpt->BasisSetIssue  In CRYSTAL ThermoCheck Thermodynamic Stability Check (Formation Enthalpy) MechCheck Mechanical Stability Check (Elastic Constants) ThermoCheck->MechCheck DynCheck Dynamical Stability Check (Phonon Calculations) MechCheck->DynCheck StableStruct Stable Structure Identified DynCheck->StableStruct BasisSetIssue->ThermoCheck No ApplyLDREMO Apply LDREMO Keyword or Adjust Basis Set BasisSetIssue->ApplyLDREMO Yes ApplyLDREMO->GeoOpt

Conclusion

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.

References