xtb_configure Subroutine

private subroutine xtb_configure(this, use_cds, use_shift, dielectric, cpcm_nang, cpcm_rscale, solvent, solvation_model)

Configure XTB solvation settings from driver configuration

Sets up all XTB-specific parameters and applies default solvation model logic (alpb if solvent or dielectric is specified but no model given).

Type Bound

xtb_config_t

Arguments

Type IntentOptional Attributes Name
class(xtb_config_t), intent(inout) :: this
logical, intent(in) :: use_cds

Include CDS non-polar terms

logical, intent(in) :: use_shift

Include solution state shift

real(kind=dp), intent(in) :: dielectric

Direct dielectric constant (-1 = use solvent lookup)

integer, intent(in) :: cpcm_nang

Angular grid points for CPCM

real(kind=dp), intent(in) :: cpcm_rscale

Radii scaling for CPCM

character(len=*), intent(in), optional :: solvent

Solvent name

character(len=*), intent(in), optional :: solvation_model

Solvation model name


Called by

proc~~xtb_configure~~CalledByGraph proc~xtb_configure xtb_config_t%xtb_configure proc~config_to_driver config_to_driver proc~config_to_driver->proc~xtb_configure proc~run_multi_molecule_calculations run_multi_molecule_calculations proc~run_multi_molecule_calculations->proc~config_to_driver program~main main program~main->proc~config_to_driver program~main->proc~run_multi_molecule_calculations

Source Code

   subroutine xtb_configure(this, use_cds, use_shift, dielectric, cpcm_nang, cpcm_rscale, solvent, solvation_model)
      !! Configure XTB solvation settings from driver configuration
      !!
      !! Sets up all XTB-specific parameters and applies default solvation model
      !! logic (alpb if solvent or dielectric is specified but no model given).
      class(xtb_config_t), intent(inout) :: this
      logical, intent(in) :: use_cds             !! Include CDS non-polar terms
      logical, intent(in) :: use_shift           !! Include solution state shift
      real(dp), intent(in) :: dielectric         !! Direct dielectric constant (-1 = use solvent lookup)
      integer, intent(in) :: cpcm_nang           !! Angular grid points for CPCM
      real(dp), intent(in) :: cpcm_rscale        !! Radii scaling for CPCM
      character(len=*), intent(in), optional :: solvent          !! Solvent name
      character(len=*), intent(in), optional :: solvation_model  !! Solvation model name

      this%use_cds = use_cds
      this%use_shift = use_shift
      this%dielectric = dielectric
      this%cpcm_nang = cpcm_nang
      this%cpcm_rscale = cpcm_rscale

      if (present(solvent)) this%solvent = solvent
      if (present(solvation_model)) then
         this%solvation_model = solvation_model
      else if (len_trim(this%solvent) > 0 .or. dielectric > 0.0_dp) then
         this%solvation_model = 'alpb'  ! Default solvation model
      end if
   end subroutine xtb_configure