@@ -572,6 +572,44 @@ Namely, each line contains the element name and the corresponding parameter.)";
572572 };
573573 this ->add_item (item);
574574 }
575+ {
576+ Input_Item item (" vdw_cutoff_smooth_width_2b" );
577+ item.annotation = " smooth cutoff width for two-body dispersion" ;
578+ item.category = " vdW correction" ;
579+ item.type = " Real" ;
580+ item.description = R"( Width of the smooth switching region for the two-body pairwise dispersion real-space cutoff.
581+ A value of zero disables smoothing for the two-body contribution.)" ;
582+ item.default_value = " 0.05" ;
583+ item.unit = " Bohr" ;
584+ item.availability = " vdw_method==d4" ;
585+ read_sync_double (input.vdw_cutoff_smooth_width_2b );
586+ item.check_value = [](const Input_Item& item, const Parameter& para) {
587+ if (para.input .vdw_cutoff_smooth_width_2b < 0.0 )
588+ {
589+ ModuleBase::WARNING_QUIT (" ReadInput" , " vdw_cutoff_smooth_width_2b must be non-negative" );
590+ }
591+ };
592+ this ->add_item (item);
593+ }
594+ {
595+ Input_Item item (" vdw_cutoff_smooth_width_3b" );
596+ item.annotation = " smooth cutoff width for three-body dispersion" ;
597+ item.category = " vdW correction" ;
598+ item.type = " Real" ;
599+ item.description = R"( Width of the smooth switching region for the three-body Axilrod-Teller-Muto (ATM) dispersion real-space cutoff.
600+ A value of zero disables smoothing for the three-body contribution.)" ;
601+ item.default_value = " 0.05" ;
602+ item.unit = " Bohr" ;
603+ item.availability = " vdw_method==d4" ;
604+ read_sync_double (input.vdw_cutoff_smooth_width_3b );
605+ item.check_value = [](const Input_Item& item, const Parameter& para) {
606+ if (para.input .vdw_cutoff_smooth_width_3b < 0.0 )
607+ {
608+ ModuleBase::WARNING_QUIT (" ReadInput" , " vdw_cutoff_smooth_width_3b must be non-negative" );
609+ }
610+ };
611+ this ->add_item (item);
612+ }
575613 {
576614 Input_Item item (" vdw_cutoff_period" );
577615 item.annotation = " periods of periodic structure" ;
0 commit comments