@@ -3,16 +3,21 @@ import { HubbardUContextProvider } from "./HubbardUContextProvider";
33const defaultHubbardConfig = {
44 paramType : "U" ,
55 atomicSpecies : "" ,
6- atomicOrbital : "2p " ,
6+ atomicOrbital : "3d " ,
77 value : 1.0 ,
88} ;
99
1010export class HubbardJContextProvider extends HubbardUContextProvider {
1111 get defaultData ( ) {
12+ const valenceOrbitals = this . _getValenceOrbitals ( this . firstElement ) ;
1213 return [
1314 {
1415 ...defaultHubbardConfig ,
1516 atomicSpecies : this . firstElement ,
17+ atomicOrbital :
18+ valenceOrbitals . length > 0
19+ ? valenceOrbitals [ valenceOrbitals . length - 1 ]
20+ : defaultHubbardConfig . atomicOrbital ,
1621 } ,
1722 ] ;
1823 }
@@ -57,15 +62,38 @@ export class HubbardJContextProvider extends HubbardUContextProvider {
5762 atomicOrbital : {
5863 type : "string" ,
5964 title : "Orbital" ,
60- enum : this . orbitalList ,
61- default : defaultHubbardConfig . atomicOrbital ,
6265 } ,
6366 value : {
6467 type : "number" ,
6568 title : "Value (eV)" ,
6669 default : defaultHubbardConfig . value ,
6770 } ,
6871 } ,
72+ dependencies : {
73+ atomicSpecies : {
74+ oneOf : this . uniqueElementsWithLabels . map ( ( elementWithLabel ) => {
75+ const element =
76+ parseInt ( elementWithLabel . slice ( - 1 ) , 10 ) + 1
77+ ? elementWithLabel . slice ( 0 , - 1 )
78+ : elementWithLabel ;
79+ const orbitals = this . _getValenceOrbitals ( element ) ;
80+ return {
81+ properties : {
82+ atomicSpecies : {
83+ enum : [ elementWithLabel ] ,
84+ } ,
85+ atomicOrbital : {
86+ enum : orbitals . length > 0 ? orbitals : this . orbitalList ,
87+ default :
88+ orbitals . length > 0
89+ ? orbitals [ orbitals . length - 1 ]
90+ : defaultHubbardConfig . atomicOrbital ,
91+ } ,
92+ } ,
93+ } ;
94+ } ) ,
95+ } ,
96+ } ,
6997 } ,
7098 minItems : 1 ,
7199 } ;
0 commit comments