@@ -585,6 +585,44 @@ Namely, each line contains the element name and the corresponding parameter.)";
585585 };
586586 this ->add_item (item);
587587 }
588+ {
589+ Input_Item item (" vdw_cutoff_smooth_width_2b" );
590+ item.annotation = " smooth cutoff width for two-body dispersion" ;
591+ item.category = " vdW correction" ;
592+ item.type = " Real" ;
593+ item.description = R"( Width of the smooth switching region for the two-body pairwise dispersion real-space cutoff.
594+ A value of zero disables smoothing for the two-body contribution.)" ;
595+ item.default_value = " 0.05" ;
596+ item.unit = " Bohr" ;
597+ item.availability = " vdw_method is set to d4" ;
598+ read_sync_double (input.vdw_cutoff_smooth_width_2b );
599+ item.check_value = [](const Input_Item& item, const Parameter& para) {
600+ if (para.input .vdw_cutoff_smooth_width_2b < 0.0 )
601+ {
602+ ModuleBase::WARNING_QUIT (" ReadInput" , " vdw_cutoff_smooth_width_2b must be non-negative" );
603+ }
604+ };
605+ this ->add_item (item);
606+ }
607+ {
608+ Input_Item item (" vdw_cutoff_smooth_width_3b" );
609+ item.annotation = " smooth cutoff width for three-body dispersion" ;
610+ item.category = " vdW correction" ;
611+ item.type = " Real" ;
612+ item.description = R"( Width of the smooth switching region for the three-body Axilrod-Teller-Muto (ATM) dispersion real-space cutoff.
613+ A value of zero disables smoothing for the three-body contribution.)" ;
614+ item.default_value = " 0.05" ;
615+ item.unit = " Bohr" ;
616+ item.availability = " vdw_method is set to d4" ;
617+ read_sync_double (input.vdw_cutoff_smooth_width_3b );
618+ item.check_value = [](const Input_Item& item, const Parameter& para) {
619+ if (para.input .vdw_cutoff_smooth_width_3b < 0.0 )
620+ {
621+ ModuleBase::WARNING_QUIT (" ReadInput" , " vdw_cutoff_smooth_width_3b must be non-negative" );
622+ }
623+ };
624+ this ->add_item (item);
625+ }
588626 {
589627 Input_Item item (" vdw_cutoff_period" );
590628 item.annotation = " periods of periodic structure" ;
0 commit comments