Download presentation

Presentation is loading. Please wait.

Published byJourney Doby Modified about 1 year ago

1
TURBOMOLE Program Package for ab initio Electronic Structure Calculations Adem Tekin Yrd. Doc. Dr Istanbul

2
Turbomole Attention!! Input and lsf scripts can be downloaded from:

3
Turbomole Activate turbomole and molpro in your shell — Go to your home directory — Open your bash shell script: vi.bashrc — Add the following lines for TURBOMOLE: export TURBODIR=/RS/progs/TURBOMOLE PATH=$PATH:$TURBODIR/scripts PATH=$PATH:$TURBODIR/bin/`sysname` export PARA_ARCH=MPI — Add the following lines for MOLPRO: export INTEL_LICENSE_FILE=/RS/progs/intel/licenses/RS/progs/intel/impi/3.1/bin64/mpivars.sh export molprodir=/RS/progs/molpro/mpp/2009/1-20/x86_64 PATH=$PATH:$molprodir/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/RS/progs/molpro/mpp/2009/1- 20/x86_64/lib export PARA_ARCH=MPI — Add the following lines for VESTA: export PATH=$PATH:/RS/progs/VESTA-x86_64 — Log out and log in again then check: export $TURBODIR export $molprodir

4
Turbomole Outline — Introduction — How to create input (define tool) — Single point calculations at the Hartree-Fock, DFT and RIDFT levels — Geometry optimization of water dimer at the RIMP2 level — Geometry optimization of water dimer at the SCS-MP2 level — Geometry optimization of water dimer at the CP-SCS-MP2 level

5
Turbomole Turbomole — Developed by Reinhart Ahlrichs (University of Karlsruhe) — Since 2007 TURBOMOLE GmbH founded by Ahlrichs is responsible — for more information please visit to: — — — A forum site is available under

6
Turbomole Turbomole usage philosophy The usage of TURBOMOLE has been adapted to the way a UNIX user is working: — Command line driven — Many different programs, each one specialized for methods and/or properties — Scripts are used to combine the functionalities and manage workflows — Input can be changed by text editors — Output processed by standard UNIX tools (editors, grep, awk,...)

7
Turbomole Turbomole usage philosophy

8
Turbomole Turbomole modules

9
Turbomole Turbomole modules DEFINEinteractive input generator which creates the input file control. UFFperforms a geometry optimization at a force field level. DSCFfor semi-direct SCF (self-consistent field) and DFT calculations. GRADrequire a successful DSCF run and calculates the gradient of the energy with respect to nuclear coordinates. RIDFT andperform DFT calculations – as DSCF and DGRAD – within the RI-J approximation. RDGRAD MPGRADrequires a well converged SCF run and performs closed-shell RHF or UHF calculations yielding single point MP2 energies and, if desired, the corresponding gradient. RIMP2calculates MP2 energies and gradients for RHF and UHF wavefunctions significantly more efficient then MPGRAD. RICC2calculates electronic excitation energies, transition moments and properties of excited states at the CIS, CIS(D), ADC(2) and CC2 level using a closed shell RHF or a UHF SCF reference function.

10
Turbomole Turbomole modules RELAXrequires a gradient run – by GRAD, RDGRAD, RIMP2 or MPGRAD and proposes a new structure based on the gradient and the approximated force constants. STATPTperforms a structure optimization using the “Trust Radius Image Minimization” algorithm. It can be used to find minima or transition structure. FROGexecutes one molecular dynamics step. AOFORCErequire a well converged SCF or DFT run and performs an analytic calculation of force constants, vibrational frequencies and IR intensities. ESCFrequires a well converged SCF or DFT run and calculates time dependent and dielectric properties. EGRADcomputes gradients and first-order properties of excited states. MPSHIFTcomputes NMR chemical shieldingns for all atoms of the molecules at the SCF, DFT or MP2 level. FREEHcalculates thermodynamic functions from molecular data in a control file: an AOFORCE or a NUMFORCE run is a necessary prerequisite.

11
Turbomole How to create the input — Build define has some limited features to build a structure from scratch, but that is neither convenient nor intuitive, except for some small cases. → Use an external builder (molden, ECCE, Hyperchem, Insight, Arguslab, MAPS, Accelrys DS Visualizer,...there are many!) and convert the structure to xyz format. — Convert Use the TURBOMOLE script x2t to convert xyz files to TURBOMOLE coordinates: x2t struct.xyz > coord

12
Turbomole Define define is an interactive input generator which creates the input file control: — Supports most basis sets in use, especially the only fully atom optimized consistent basis sets of SVP, TZV, and QZV quality available for the atoms H–Rn (including lanthanides and actinides up to Lawrencium for SVP and TZV) — Determines the molecular symmetry — Determines the internal coordinates, allowing efficient geometry optimization — Allows to perform a geometry optimization at a force field level to pre-optimize the geometry and to calculate a Cartesian Hessian matrix — Sets the keywords necessary for single point calculations and geometry optimizations for a variety of methods — Manipulate geometries of molecules

13
Turbomole Define There are four major menus in define: Molecular Geometry Menu Atomic Attribute Definition Menu Occupation number & Molecular Orbital Definition Menu General Menu Navigation within define: 1. To finish the menu and proceed to the next one, enter: * 2. To go back to the previous menu, enter: & 3. If you are in one of the four main menus, hitting will just print out the menu you are in 4. To quit define immediately (and prematurely), enter: qq

14
Turbomole Define To call define just type define in the shell : $define — First you will be asked whether you want to define a new system or not — If not press the ENTER button

15
Turbomole Define Then you will be asked for a n input title: — either give a name — or press the ENTER button to proceed

16
Turbomole Define – molecular geometry menu

17
Turbomole Define – atomic attribute definition menu Suppose we created the coord file via: x2t struct.xyz > coord a coordto load the geometry desyto detect the symmetry, if you expect a higher symmetry, repeat with increased tolerance desy 0.1 iredto use internal redundant coordinates Then pressing * will lead us to the Atomic Attribute Definition Menu Select only these for a geometry optimization based on cartesian coordinates

18
Turbomole Define – atomic attribute definition menu The default basis set is def-SV(P) You can assign the same basis set for all atoms in the system by: b all aug-cc-pVTZ (Dunning’s basis set) If you want to use a different basis set for any atomic species (let’s say for hydrogen): b “h” aug-cc-pVDZ bluse to see the current basis set assignments TURBOMOLE has a new set of basis sets abbreviated by def2: def2-SV(P), def2-SVP, def2-TZVP, def2-TZVPP, def2-QZVP, def2-QZVPP biinformation about improved TURBOMOLE basis sets (At least you must use def2-TZVP for a quantative analysis)

19
Turbomole Define – atomic attribute definition menu SV(P) or def-SV(P) for routine SCF or DFT. Quality is about 6-31G*. TZVP or def-TZVP for accurate SCF or DFT. Quality is slightly better than 6-311G**. TZVPP or def-TZVPP for MP2 or close to basis set limit SCF or DFT. Comparable to 6-311G(2df). QZVP and QZVPP for highly correlated treatments; quadruple zeta + 3d2f1g or 4d2f1g (beyond Ne), 3p2d1f for H.

20
Turbomole Define – occupation number & orbital definition menu This menu serves for the definition of occupation numbers (and thereby the charge of the molecule) and the start orbitals for the SCF calculations. For well-behaved molecules, The procedure is very easy. Just choose the option: eht to perform an extended Huckel calculation.

21
Turbomole Define – occupation number & orbital definition menu — If you do not want them type n — You can accept the default parameters by typing y, then you will be asked for the charge of the system (default is 0)

22
Turbomole Define – occupation number & orbital definition menu — to accept the current occupation type y, then you will enter to the GENERAL MENU

23
Turbomole Define – general menu Here, you can choose additional parameters for your calculation.

24
Turbomole Define – general menu - scf

25
Turbomole Define – general menu – mp2 — Do not forget to freeze (frozen core approximation) — Do not forget to add cbas basis: the basis set selected in atomic attribute definition menu — You can change memory (default is 60 MB) — You can change convergence, use 0.1E-07

26
Turbomole Define – general menu – cc2 — Similar to MP2 submenu — Use always ri option — Spin component scaled (SCS) MP2 is hidden in the ricc2 submenu — CC2 is an approximated coupled cluster singles and doubles (CCSD) model — The CC2 total energy is of second-order Moller-Plesset perturbation theory (MP2) quality — The scaling of CC2 is N 5 whereas the scaling of CCSD is N 6, where N is the number of orbitals For more info about CC2 check Chem. Phys. Lett (1995)

27
Turbomole Define – general menu – cc2 – ricc2

28
Turbomole Define – general menu – dft Type on to switch on DFT (default functional is b-p) (default gridsize is m3) — switch on DFT — select functional — select gridsize

29
Turbomole Define – general menu – dft

30
Turbomole S22 test of interaction energies [JCP 132 (2010) ] Mean Absolute Deviation

31
Turbomole Empirical Dispersion Correction for DFT Calculations — DFT functionals fails for intermolecular interaction energy calculations (They do not result any binding between two monomers) — This is due to insufficient treatment of electron correlation (which is so important to describe dispersion forces) — Stefan Grimme suggested dispersion correction to ordinary DFT energies — When using the dispersion correction, the total energy is given by — E disp is an empirical dispersion correction given by N at is the number of atoms C 6 ij denotes the dispersion coefficient for atom pair ij s 6 global scaling factor depends on the selected DF R ij is the interatomic distance between i and j

32
Turbomole Define – general menu – dft Turbomole offers grids 1 (coarse) to 7 (nest), and the multiple grids m3 to m5. The latter employ a coarser grid during SCF iterations, and grid 3 to grid 5 in the final SCF iteration and the gradient evaluation. Default is grid m3, for clusters with more than 50 atoms use m4.

33
Turbomole Define – general menu – RI-J (resolution of identity) — In the RI approximation two-electron integrals are approximated by three-center expansions — RI procedure is recommended for non-hybrid functionals (which speeds up calculations by a factor of 10 at least) — activate ri with on — assign jbas — then call jobex script with –ri option (jobex -ri)

34
Turbomole Define – general menu – MARI-J — RI-J calculations can be done even more effciently with the Multipole Accelerated RI-J (MARI-J ) option, especially for larger molecules. — Just rely on the defaults.

35
Turbomole Define – general menu – stp – transition state search — Stationary points are places on the potential energy surface (PES) with a zero gradient. — Two types of stationary points are of special importance to chemists. These are minima (reactants, products, intermediates) and first-order saddle points (transition states) — The type of stationary point optimization depends on the value of irtvec. By default irtvec is set to 0, which implies a structure minimization. A value irtvec > 0 implies a transition state optimization using the eigenvalue-following TRIM (Trust Radius Image Minimization) algorithm. — Transition state search is invoked by jobex –trans

36
Turbomole Vibrational normal modes — After having performed a single point energy calculation or a geometry optimization, just start the program aoforce (analytic force constant calculation): aoforce > force.out — All details will be written to force.out — The keyword $vibrational spectrum in the control file contains a list of the modes: — NumForce enables numerical force constant calculations for all levels of theory with a gradient implemented. To run NumForce just issue the command NumForce –ri –level mp2 -central

37
Turbomole Structure optimizations using the jobex script — The shell script Jobex controls and executes automatic optimizations of molecular geometry parameters. — It will cycle through the direct SCF, gradient and force relaxation programs and stop if either the maximum number of cycles is reached or the convergence criteria are fulfilled. — Jobex has many options: -energy integer converge total energy up to 10 -integer Hartree (default:6) -gcart integer converge maximum norm of cartesian gradient up to 10 -integer a.u. (def:3) -c integer perform up to integer cycles (default:20) -dscf begin with a direct SCF step -grad begin with a gradient step -statpt begin with a force relaxation step -relax use the RELAX program for force relaxation -trans perform transition state search -level level define the optimization level, level=scf, mp2, cc2 or uff -ri use RI modules -ex perform excited state geometry optimization using EGRAD -md a molecular dynmaics run

38
Turbomole Turbomole output — There will be an output written to file job.start. — The convergence is signalled by the file converged; otherwise, you should find the file not.converged within your working directory. — If Jobex finds a file named stop or STOP in the working directory, Jobex will stop after the present step has terminated. You can create stop by the command touch stop. — The output of the last complete cycle is written to file job.last, while the output of the running cycle is collected within the file job., where is the index of the cycle. — Look at the file gradient: it contains all geometries and gradients at each step of optimization: grep cycle gradient — To see the final geometry call t2x –c > final.xyz t2x > final_all.xyz (to see all trajectory) — At the command line, use dist, bend or tors to get bond lengths, angles, dihedral angles

39
Turbomole Keywords in the control file — The file control is the input file for TURBOMOLE. — Keywords start with a ‘$’, e.g. $title. $title NO2 c2v UKS SVP $operating system unix $symmetry c2v $coord file=coord $intdef file=coord $atoms n 1 \ basis =n def-SVP o 2-3 \ basis =o def-SVP … $energy file=energy $grad file=grad $forceapprox file=force $lock off $dft functional b-p gridsize m3 $last step define $end

40
Turbomole Submitting Turbomole jobs on UHEM — single job submission #!/bin/bash #BSUB -m karadeniz_temp1 # ege or anadolu #BSUB -a intelmpi # bu kismi degistirmeyin !!! #BSUB -J triazine # isinizi tanimlayacak bir isim #BSUB -o triazine.out # bu kismi degistirmeyin !!! #BSUB -e triazine.err # bu kismi degistirmeyin !!! #BSUB -q workshop # kuyruk ismi #BSUB -P workshop # proje ismi #BSUB -R "span[ptile=1]" # bu kismi degistirmeyin !!! #BSUB -n 1 # kullanilacak olan islemci sayisi echo 'Starting time:' date jobex -ri -level cc2 -energy 7 -gcart 4 -c 1000 echo 'Ending time:' date

41
Turbomole Submitting Turbomole jobs on UHEM — parallel job submission #!/bin/bash #BSUB -m karadeniz_temp1 #BSUB -m "b074 b075" # submit the job to the b074 and b075 nodes #BSUB -a intelmpi # bu kismi degistirmeyin !!! #BSUB -J triazine # isinizi tanimlayacak bir isim #BSUB -o triazine.out # bu kismi degistirmeyin !!! #BSUB -e triazine.err # bu kismi degistirmeyin !!! #BSUB -q workshop # kuyruk ismi #BSUB -P workshop # proje ismi #BSUB -R "span[ptile=8]" # bu kismi degistirmeyin !!! #BSUB -n 16 # kullanilacak olan islemci sayisi export HOSTS_FILE=/AKDENIZ/HOME005/users/tekin/hostsfile export PARNODES=16 echo 'Starting time:' date jobex -ri -level cc2 -energy 7 -gcart 4 -c 1000 echo 'Ending time:' date check availability of nodes with bhosts command b074 b075

42
Turbomole Turbomole examples — Single point calculations at the Hartree-Fock, DFT and RIDFT levels — Geometry optimization at the RIMP2 level — Geometry optimization at the SCS-MP2 level — Geometry optimization at the CP-SCS-MP2 level

43
Turbomole Single point calculations – Hartree Fock, DFT and RIDFT energy calculation of benzene 1. Create an empty directory, e.g., hf_def2_tzvp_benzene 2. Call define 3. Hit 4. Give a title: benzene, HF calculation 5. Load benzene from the structure library ($TURBODIR/structures) a !benzene 6. define will scan through the structure library and ask you if you want to take the proposed molecule

44
Turbomole Single point calculations – Hartree Fock, DFT and RIDFT energy calculation of benzene 7. Just say y to accept the structure 8. Switch on the symmetry detection be entering: desy 9. Next step is to provide internal coordinates. (That is not needed for single point calculations.) ired 10. Now we are done with this menu and proceed to the next one by entering * 11. This is the atomic attributes menu. Choose your basis set: b all def2-TZVP 12. Now we are done with this menu and proceed to the next one by entering * 13. Determine the starting molecular orbitals with an extended Huckel guess: eht 14. Then you will be asked a lot of questions. Just accept the defaults. 15. Now you are in general menu. 16. The default method is Hartree-Fock (HF) calculation, and therefore we do not have to change anything here. Simply enter: * 17. To run a HF single point energy calculation, call dscf > dscf.out

45
Turbomole Single point calculations – Hartree Fock, DFT and RIDFT energy calculation of benzene 18. After the run, look in the output (dscf.out) and/or the energy file. The energy file should give: $energy SCF SCFKIN SCFPOT $end 19. Look in the output (dscf.out) for the dipole and quadrupole moments and whatever you like to know. 20. Get more details about the orbitals, the HOMO-LUMO gap and occupation: eiger 21. Let’s run a DFT calculation just after the HF calculation. 22. Call define and just accept all the defaults, then you will be in general menu. 23. Choose dft 24. Choose on to switch on DFT (Now you have chosen the default functional (b-p) and gridsize m3) 25. Quit from define with * 26. Run dscf again. 27. Look again to the energy file: $energy SCF SCFKIN SCFPOT $end

46
Turbomole Single point calculations – Hartree Fock, DFT and RIDFT energy calculation of benzene 28. Now, let’s switch on RI approximation following previous steps enter to the general menu 29. enter ri and then on. 30. Run ridft program: ridft > ridft.out $energy SCF SCFKIN SCFPOT $end

47
Turbomole Do not be confused with auxiliary basis 1. Coulomb-Fitting ($jbas). Basis sets declared in this data-group are needed for RI-DFT calculations, where only the Coulomb part of the Fock operator is approximated. They can be kept rather small. 2. Coulomb- and Exchange-Fitting ($jkbas). If additionally the exchange part of the Fock operator needs to be approximated (RI-SCF calculations), a larger fitting basis is needed. It also can be used for RI-DFT runs (if the accuracy of the $jbas auxiliary basis is not satisfactory for you). 3. Correlation-Fitting ($cbas). These basis sets are needed for RI-MP2 and RI-CC2 calculations. They contain basis functions with high angular momentum.

48
Turbomole Geometry optimizations – RIMP2, SCS-MP2 and CP- SCS-MP2 calculations of water dimer 1. Open a new directory, e.g., rimp2_avdz_water 2. Create water.xyz file. Here are the coordinates: 6 O H H O H H Convert xyz file to turbomole coord file: x2t water.xyz > coord 4. Call define 5. Hit 6. Give a title 7. Read the coordinates: a coord 8. desy 9. ired

49
Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer 10. Type * to go to the next menu 11. Choose basis set: b all aug-cc-pVDZ 12. Type * to go to the next menu 13. Activate eht and accept the defaults 14. Now you are in the general menu 15. First select scf 16. Change scf option conv and then type 8 and go back to the general menu by pressing to ENTER 17. Now, select mp2 18. Activate freeze and go back to the mp2 submenu by pressing to * 19. Activate cbas: Automatically the auxiliary basis set will be loaded. 20. Press * to go back to the mp2 submenu. 21. Select the denconv and enter 0.1E Press * to go back to the mp2 submenu. 23. Press * to quit define. 24. Run the jobex script with the following parameters: jobex -ri -level mp2 -energy 7 -gcart 4 -c Check the convergence by grep cycle gradient 26. After the convergence convert the turbomole geometry to xyz: t2x –c > rimp2_opt.xyz or t2x > final_all_trajectory.xyz

50
Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer 1. Open a new folder, e.g., scsmp2_avdz_water 2. Copy the rimp2 xyz output here: cp../rimp2_avdz_water/rimp2_opt.xyz. 3. Convert the xyz file to turbomole file: x2t rimp2_opt.xyz > coord 4. Call define 5. a coord 6. desy 7. ired 8. * 9. b all aug-cc-pVDZ 10. * 11. Activate eht and accept the defaults 12. Now you are in the general menu 13. First select scf 14. Change scf option conv and then type 8 and go back to the general menu by pressing to ENTER 15. Now, select cc2 16. Activate freeze and go back to the cc2 submenu by pressing to * 17. Activate cbas: Automatically the auxiliary basis set will be loaded. 18. Press * to go back to the cc2 submenu. 19. Select the denconv and enter 0.1E-07.

51
Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer 20. Press * to go back to the cc2 submenu. 21. Activate ricc2 22. Switch on scs correction by typing scs 23. Choose geoopt model: geoopt mp2 24. * 25. * 26. * 27. vi control to check the ricc2 entries: $ricc2 mp2 energy only geoopt model=mp2 state=(x) scs cos= css= If there is nothing after mp2, enter “energy only” by hand 29. Run the jobex script with the following parameters: jobex -ri -level cc2 -energy 7 -gcart 4 -c Check the convergence by grep cycle gradient 31. After the convergence convert the turbomole geometry to xyz: t2x –c > scsmp2_opt.xyz or t2x > final_all_trajectory.xyz

52
Turbomole Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer 1. Open a new folder, e.g., cp_scsmp2_avdz_water 2. Copy the scsmp2 xyz output here: cp../scsmp2_avdz_water/scsmp2_opt.xyz. 3. Convert the xyz file to turbomole file: x2t scsmp2_opt.xyz > coord 4. Call define 5. a coord 6. desy 7. ired 8. frag 9. Switch frag on by typing on

53
Turbomole Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer Two times press button to see the fragment numbers. At most you can define three fragments.

54
Turbomole Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer —First three atoms belong to the first water molecule and the last three atoms belong to the Second water molecule. You can assign them like below:

55
Turbomole Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer 10. Enter to leave the frag menu 11. * 12. b all aug-cc-pVDZ 13. * 14. Activate eht and accept the defaults 15. Now you are in the general menu 16. First select scf 17. Change scf option conv and then type 8 and go back to the general menu by pressing to ENTER 18. Now, select cc2 19. Activate freeze and go back to the cc2 submenu by pressing to * 20. Activate cbas: Automatically the auxiliary basis set will be loaded. 21. Press * to go back to the cc2 submenu. 22. Select the denconv and enter 0.1E Press * to go back to the cc2 submenu. 21. Activate ricc2 22. Switch on scs correction by typing scs 23. Choose geoopt model: geoopt mp2 24. * 25. * 26. * 27. vi control to check the ricc2 entries: $ricc2 mp2 energy only geoopt model=mp2 state=(x) scs cos= css= If there is nothing after mp2, enter “energy only” by hand 29. Run the jobex script with the following parameters: jobex -ri -level cc2 -energy 7 -gcart 4 -c Check the convergence by grep cycle gradient 31. After the convergence convert the turbomole geometry to xyz: t2x –c > scsmp2_opt.xyz or t2x > final_all_trajectory.xyz

56
Turbomole Geometry optimizations – RIMP2, SCS-MP2 and CP-SCS-MP2 calculations of water dimer 27. vi control to check the ricc2 entries: $ricc2 mp2 energy only geoopt model=mp2 state=(x) scs cos= css= If there is nothing after mp2, enter “energy only” by hand 29. Run the jobex script with the following parameters: jobbsse -ri -level mp2 –opt 30. Check the convergence by grep cycle gradient 31. After the convergence convert the turbomole geometry to xyz: t2x –c > cp_scsmp2_opt.xyz or t2x > final_all_trajectory.xyz

57
Turbomole Geometry optimizations – Comparison of RIMP2, SCS-MP2 and CP-SCS-MP2 water dimer geometries RIMP2 SCS-MP2 CP-SCS-MP2

58
Turbomole COSMO – Dealing with solvation effects 1. Open a new folder, e.g., cosmo_benzene 2. Load benzene from the structure library with a !benzene 3. desy 4. ired 5. * 6. b all def-TZVP 7. * 8. eht and many times 9. Switch on dft and ri 10. Exit from define with * 11. cosmoprep g_tech/g_ur/k_scrf.htm Water: ε= Acetonitrile: ε= Methanol: ε= Ethanol: ε= IsoQuinoline: ε=11.00 Quinoline: ε=9.16 Chloroform: ε= DiethylEther: ε= Dichloromethane: ε=8.93 DiChloroEthane: ε= CarbonTetraChloride: ε= Benzene: ε= Toluene: ε=2.3741

59
Turbomole COSMO – Dealing with solvation effects

60
Turbomole COSMO – Dealing with solvation effects 12. r all o if you have atoms like “mg” r “mg” b 13. * jobex –ri > jobex.out

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google