1. Trang chủ
  2. » Luận Văn - Báo Cáo

Symbolic calculations of unitary transformations in quantum dynamics

17 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 0,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nguyen-Dang Dhparternent de Chimie, Fucultk des Sciences et de Ginnie, Universife Luval, GIK 7P4, Qrkbec, QC, Canada Received 28 February 1998 Abstract The present paper deals with the

Trang 1

Computer Physics Communications

Symbolic calculations of unitary transformations in quantum

dynamics Nam-Anh Nguyen ‘, T.T Nguyen-Dang

Dhparternent de Chimie, Fucultk des Sciences et de Ginnie, Universife Luval, GIK 7P4, Qrkbec, QC, Canada

Received 28 February 1998

Abstract

The present paper deals with the development of a Mathematics package of programs for handling quantum mechanical equations involving commutators and unitary transformations One program implements general commutators handling rules, Another evaluates a series of nested commutators representing a general unitary transformations We apply these new symbolic routines to test-transformations, ranging from simple translations in both spatial and momentum spaces to transformations involving nonlinear generators and denoting non-inertial changes of reference frames in the phase space

We illustrate with a simple example how these tools can be used to solve formally a molecular dynamical problem @ 1998 Published by Elsevier Science B.V

Keywords: Commutator algebra; Unitary transformation

fide ofprogram: NCComAlgebra

Cutulogue identifier: ADJL

Progrcrm Summary URL:

http://www.cpc.cs.qub.ac.uk/cpc/summaries/ADJL

Program obtainable from: CPC Program Library, Queen’s Univer-

sity of Belfast, N Ireland, and from the authors by e-mail

Opruting systems under which the program bus been tested: Win-

dows NT 4.0 and Windows 95

Programming language used: Mathematics v.3.0

’ E-mail: anh@chm.ulaval.ca

2 Available at http: //auclid.ucsd edu/-ncalg/download html

OOIO-465.5/98/$ - see front matter @ 1998 Published by Elsevier Science B.V All rights reserved

PUSOOlO-4655(98)00129-5

Memory required to execute with typical data: Default Mathemat- ica requirement

Instal/ation: The package NCAlgebra 2 must be installed together with the present package following the instructions provided in an included installation guide

No of bytes in distributed progrum including test data, etc.:

16891 Distribution fiwmat: uuencoded compressed tar file Keywwrd.~: Commutator algebra, unitary transformation Nature qf physical problem

Computer algebra implementation of the definition of a commuta- tor, of commutator handling rules Symbolic evaluation of unitary

Trang 2

184 N.-A Nguyen, 7IT N~rryen-Dan~/C[)rruter Physim Communications 115 (1998) 183-I 99

transformations for use in quantum dynamical problems

Restrictions on the complexity of the problem

Unitary transformations are represented by a truncated, finite se-

ries of nested commutators involving the generator The maximum

number of terms presently allowed in this series is 32 This can

be extended by the user

Unusual features of‘ the program

Uses an extension of Mathematics language offered by the pack- age NCAlgebra This must therefore be installed as a Mathematics add-on package

LONG WRITE-UP

1 Introduction

Theoretical research in molecular physics has been supported mainly by numerical computations, although the power of symbolic computation in this field has been illustrated on many occasions [ l-41 In addition, the recent trends in molecular dynamics and spectroscopy do point to the important role that symbolic computation may play in the future Some of the intensive efforts which are being made in theoretical spectroscopy to simulate complex, high resolution spectra use ideas and/or approaches, such as the guided Lanczos procedure [5], or the time-dependent Bloch wave-operator approach [6], which may profit from some symbolic analysis In this respect, it is to be noted that artificial intelligence techniques have been used in some initiatives to deal with certain aspects of the wave-operator approach [7] In the context of intense field molecular dynamics, the need to describe the strong laser-molecule interactions non-perturbatively calls for the developments of new representations Often, these result from unitary transformations of the laser-driven molecular system [8,9], and the design of new representations using this type of approach can benefit from some symbolic modelling

In the same context, the exploration of control scenarios, in particular those of the ‘optimal-control’ [ lo] and

‘tracking-control’ [ 1 I] types, can be assisted by symbolic programming

In the theory of intense field/molecule interaction simple unitary transformations have been used to switch from one gauge or representation to another [ 12,131 Each of these simple transformations is relatively straight- forward to evaluate, requiring no symbolic assistance, and serves to remove a particular form of radiative couplings The price to be paid, the introduction of a new form of couplings, generally as strong as the original ones, scarcely justifies the application of the unitary transformation itself, except in circumstances defining particular constraints on the field attributes such as its frequency or its intensity To obtain a new representation that does offer an authentic reduction of couplings, even their complete removal in certain cases, a unitary transformation of indeterminate form is introduced [ 14-l 6,8] Given a molecular system, the unitary transfor- mation is required to be such that an adiabatic invariant, called Lewis invariant [ 171, can be found for the transformed system In this type of procedure, which involves a double search having as objects the unitary transformation itself and the adiabatic invariant of the transformed Hamiltonian [ 161, the operator calculus can become prohibitively complicated This is mainly due to the tremendously complex transformation rules that one would obtain when the unitary transformation is highly nonlinear with respect to the dynamical variables of the system Also, one may want to repeat the whole double-search procedure within an iterative approximation scheme All these aspects point to the timeliness of an efficient symbolic package to perform various tasks needed to make the systematic handling of unitary transformations and commutators more accessible

The present paper deals with the development of a Mathematics 3 program package, named NCComAlgebra, for handling quantum mechanical equations involving commutators and unitary transformations When dealing with quantum mechanics using a computer algebra language, such as Mathematics or Map]e4, one inevitably encounters problems with non-commutative products of operators In the presently unique textbook on quantum

’ MATHEMATICA is a registered trademark of Wolfram Research, Inc

Trang 3

N.-A Nguyen, 27: Njiuyen-DunR/C~~rnl)uter Physics Communicutrons 115 (1998) 183-199 185

mechanics [ 181 with Mathematics, one can find a number of codes augmenting the set of rules for non- commutative products More complete rules allowing the manipulation of commutators, and the simplification

of commutator-containing expressions, are needed however for the evaluation of unitary transformations Starting with the NCAlgebra package [ 191, we develop a program to implement genera1 commutators handling rules

We then use this routine in another program which evaluates, as operator-valued operations, a series of nested commutators representing a genera1 unitary transformation The package contains a third program which handles operator series resummation

The paper is organised as follows: In the next section, we recall elementary facts on unitary transformations and on their use in quantum dynamics The methodology employed and the package of programs developed presently is described in Section 3 An appendix completes this section by giving the detailed methodology used for the analytical resummation of operator series Section 4 illustrates, on a number of simple and typical examples, the use of the new programs to evaluate commutator-involving expressions and unitary transformations

in quantum dynamics We close the paper with a summary and a number of relevant remarks in Section 5

2 Symbolic representation of unitary transformations

In quantum mechanics, unitary transformations can help uncover new forms of Hamiltonians, or new visions

of strongly interacting systems To be useful, a unitary transformation must be such that the new vision it generates be simpler than the original one By this, we mean that the new vision, in comparison with the old one, employs fewer basis states for instance, or yields a more direct physical insight for the problem at hand [ 201 A unitary operator is defined as one satisfying

where 6’+ is the Hermitian conjugate (the adjoint) of 0 Generally, 0 can be written in the exponential form

6 being a Hermitian operator, called the generator of the unitary transformation This generator is a function of canonical positions and momenta of the system, here denoted collectively by (P, J?) In the subsequent sections,

we specialise to a one-dimensional system, and (i, ~5) represents an actual pair of one-dimensional position and momentum variables

In the case of a conservative system described by a time-independent Hamiltonian fi, the basic problem is

to solve the eigenvalue problem fi IP) = E, IP)

Under the unitary transformation 0, the Hamiltonian becomes

and the eigenstates IV) are mapped into I!@) = i? ]P) Often, the original Hamiltonian fi is complicated and difficult to deal with The unitary operator 0 is then considered appropriate if the transformed Hamiltonian, 8,

is more diagonal in some basis than the original one, i.e I@) is described by a smaller expansion in this basis,

In the case of a system described by an explicitly time-dependent Hamiltonian such as

A(t) = l&J + Q(t) (

in which & denotes a zero-order, unperturbed molecular system, and p(t) the interaction of the molecular system with an external field’, the basic problem is to solve the time-dependent Schrodinger equation or to

5 This could for instance represent the set of b.E( I) or A(t) fi interaction terms for a system of electronic and nuclear charges in u laser field

Trang 4

186

describe the time-evolution operator p( t, to), itself a unitary transformation satisfying

One may search to transform the original problem, Eq (5), into a time-independent one, using a time- dependent unitary transformation

in which the generator 6(t) is to be found such that

is independent of time The dynamics then becomes simpler because it can be expressed in terms of the stationary-state type transport of the eigenstates ]k) of k, in terms of which the transformed time-development operator is diagonal,

Requiring k to be independent of time turns out to be too restrictive Another possibility is to require o(t)

to be such that /? admits an adiabatic, or Lewis invariant i(t) [ 17,16,11],

in which case the time evolution is exactly adiabatic in the eigenbasis, { Ik, t) ] i(r) ]k, t) = ~k( t) Ik, t)}, of i(t), i.e the transformed time-development operator is also diagonal in this basis,

o’er= Ce-;S’dr’r*(r’)/k,~)(k,tl

k

(10)

Given either one of the two preceding objectives, there is practically no approach which can be used

to systematically tailor the unitary transformation 0, i.e the generator 6 to suit that objective Often, one proceeds by trial and error, relying more or less on intuition and on experiences with simple prototypes, or with infinitesimal transformation6 The difficulty is twofold and appears at two levels On the first level, given

a specific form of 0 (or of e), it is generally not a simple matter to extract from it the images of the basic canonical position/momentum pairs (i,p) On the other level, a condition such that the non-adiabatic decoupling condition, Eq (9)) requires delicate handling of commutators, their generations, their comparisons and their resummations

To see how difficult it may be to describe correctly the images of the basic canonical position/momentum pairs (i, p) under the unitary transformation c, it suffices to recall a formal approach in which these images are obtained by solving a differential system [ 201 Consider the one-parameter class of transformations {@(a) = eiad(‘)l, E R}, of which the unitary transformation !? is a member, l? = @((Y = l), and let the image of an operator 2 under @((Y) be denoted g(a), i.e

8(a) = ~+(a)8~(a)

Then, the images of i and p^ can be obtained by solving

(11)

‘See for instance the constructions in Refs [ 161

Trang 5

N.-A Nguyen, ‘l’YT Ngrryen-Dang/C[~mprrrer Physics Communicutions 115 (1998) 183-199 187

One then realises that unless e is of a certain simple form, for instance a quadratic form in i and p^, or a function of one and only one of these two variables, this set of differential equations represents a nonlinear, difficult problem, the solution of which, corresponding to the operator-valued “initial conditions” i(0) = i, J?(O) = p^, is not evident

Another approach which will be used in the symbolic package presented in the following sections consists

of writing the images of i and ~5 in the forms of series of successive commutators, as described in Eq (25) below In both approaches, the basic problem in symbolic computation is the accurate handling of multiple commutators

3 Methodology

Present computer algebra systems come with an operator representing non-commutative product For instance, Maple uses &* and Mathematics ** non-commutative operators to represent non-commutative products In addition, extensions of the existing languages such as the NCAlgebra package in Mathematics [ 191 or the Grassmann package [ 211 in Maple allow a distinction to be made between non-commutative (quantum mechanical operators) and commutative (c-numbers) objects, and already define operations such as taking the inverse or the adjoint of an operator, solving operator-valued equations, simplifying expressions which contain both types of variables, including their derivatives

However, these packages generally suffer from not being able to manipulate commutators [A, h] between two quantum mechanical operators ff , h In Maple, the concept of commutator is defined, and noted as c( A, B),

A, B being two objects governed by the &* product, but it is difficult to simplify complex, multiply nested commutators, although some of the rules shown below do exist In Mathematics, even the notion of commutator was not internally defined With an explicit definition of the commutator, such as

Commutator [ a-, b-1 := a * *b - b * *a

as found in Ref [ 181, Mathematics would just be able to logically recognise a relation such as

(15)

tested in the form

Commutator[a,b+c] ==Commutator[a,bl +Commutator[a,c]

as true However, it is totally unable to exploit this relation, and other important identities, such as the relations

of Eqs ( 17), ( 18) below, to simplify complex expressions,

These relations must therefore be implemented as working rules (Mathematics’s delayed replacement rules) This is done in the NCComAlg program of our NCComAIgebra package Note that all the programs presented here are designed as add-ons of the NCAlgebra package, and make use of the extensions of the Mathematics language offered by that package The main NCAlgebra commands used in our programs are identified in Table 1 A complete list of the new commands defined in our programs can also be found in this table

Trang 6

188

Table 1

N.-A Nguyen, TT Nguyen-Dan~/Computeer Physics Communications 115 (1998) IRS-199

Main commands used in the examples of Section 4 Each command is outlined in terms of the action it produces, and in terms of its origin

In the description field, NC stands for Non-Commutative, UT stands for Unitary Transjiwmation, 2 denotes an arbitrary operator

NCComSimplifyl exl? 1

NCComExpand 1 exl’ I

NCComExpand2[ en]? 1

NCComCollect [ exl? 1

NCComCollect2lexp 1

NCComInit

NCUTransform[J?,ij

Polynom2CF( srrirs z 1

SetCommutative[n, bl

SetNonCommutative[ (I, hi

NCExpand[ ex,, 1

NCCollect I exp, List ]

NCUnMonomial I r.rp I

CommutativeQ [rx/>l

Write exp in fidly sunpli’ed jiwm Expand commutators in exp Expand commutator.s into basic commutator.s Collect NC products into commutators Reverse the action of NCComExpand2

Initialize commutation relations PerJi,rm on2 a UT (or an anti-VT) given its generator ?

Perform the resummation c$a series in a variable z Set variables a,b to be commutative

Set a,b to be non-co,n,,zutative Expund expressions into NC products Collect NC products in terms oj vuriables in List Replace NC products x * ~rx * * (n terms) by x^n Give True f exp is commutative and False if’ exp is non-commututive

NCComAlg NCComAlg NCComAlg NCComAlg NCComAlg NCComAlg NCUTransform Polynom2CF NCAlgebra NCAlgebra NCAlgebra NCAlgebra NCAlgebra NCAlgebra

In NCComAlg, the command NCComExpand defines the expansion rule of an elementary commutator [A, 81, i.e Eq (14) read from left to right, through

Com[ a-, b-1 :> a * *b - b * *a

It also defines, for two operators A and 9 whose commutator is a c-number, the useful rule

Literal[x-* *y-l :> y* *x - Com[y,xl/;CommutativeQ[Com[y,x]]

allowing one to cast a non-commutative product into a predetermined form (the normal product of annihilation and creation operators for example) The reverse operation of regrouping a * *b with -b * ca to yield the commutator Com[a, b], with the implication that this is replaced by its symbolic value whenever available, requires another rule, which is invoked by the NCComCollect command and is defined by

Literal[P-.R-.x- * *y- + Q-.R-.y- * *x-l :> (P * R)Com[x, y]

with the condition that P, Q and R are c-numbers and 9 = -P

Similarly, the distributivity property of Eq ( 16), the identities of Eqs ( 17), ( 18), all read from left to right, are set as rules which are invoked by the NCComExpand2 command and are coded as follows:

Com[ a-, b- * *c-l :> b * *Com[ a, c] + Com[ a, b] * *c

Com[a,f[b]] :> Com[a,bl * *f’[b]/;

(20)

CommutativeAll~[Com[a,Com[a,b]]]&&CommutativeAll~[Com[b,Com[a,b]]] (21) The same relations read in the reverse direction (from right to left), corresponding generally to the replacements

of expanded forms by more compact, regrouped forms, require the definition of another set of rules, invoked by the NCComCollect2 command Corresponding to the expansion rule of Eq (19) for example, is the following rule:

Trang 7

Literal[ P-Com[ x-, y ] + &.Com[ x-, z-1 :> Com[ x, Py + qz ] /;

CommutativetJ[P]&&CommutativeCj[Q]

while to the rule of Eq (20) corresponds

189

(22)

Literal[P-.(y-* *Com[x-,z-] + Com[x-,y-] * *z-)1 :> PCom[x,y* *z]/;Commutativeq[P] (23) Two more commands are defined by NCComAlg Applied to a given expression, the command NCComSimpIify attempts to fully expand it (using NCComExpand first then NCComExpandZ), to regroup its terms as monomial noncommutative products and to cast the expanded expression into a compact final form;

it is the composition of the two new commands NCComExpand and NCComExpand2 (defined by NCComAlg) with the NCUnMonomial and ExpandNonCommutativeMultiply commands of NCAlgebra and is defined by NCComSimplify[expr-]:=expr//NCComExpand//NCComExpand2//

ExpandNonCommutativeMultiply//NCUnMonomial//NCComExpand2//NCComExpand (24) The command NCComInit is introduced for convenience, in view of the potential use of the program in

a molecular dynamics context This command merely initializes by defaults r, p or Q, P as a canonically conjugate coordinate-momentum pair, i.e non-commutative variables satisfying the elementary commutation rule

By extension, any indexed pair of variables of the form i [ i] , fi [ i] or & [ i] , p [ i] is recognised, upon invoking the NCComInit , as a canonically coordinate-momentum pair It is to be emphasized that the initialization of basic commutation rules are necessary for the functioning of the unitary transform routine to be described below, although this initialization can be entered during a session by the user, when needed, without invoking the NCComInit command

As will be illustrated by a number of examples found in the next section, the program NCComAlg by itself is a useful tool for general quantum mechanical problems involving commutators In the context of symbolic representation of unitary transformations, this program is called as a subroutine by another program, NCUTransform, which actually seeks to evaluate the operator-valued images of observables 2 under a given unitary transformation

In the previous section, we have mentioned one approach, the differential method, embodied in Eq (12), to obtain the images of the canonical position/momentum pair (i,p^) Another approach to determine the image

of an operator 2 is based on the following relation [ 201:

By expressing 8( cr) in this form of a series of successive, multiply nested commutators [ , ] ,I = [ [ , ] n- t , &] , we avoid the problem of solving nonlinear differential equations involving non-commutative operators Moreover, the implementation of Eq (25) permits the direct evaluation of the image of any operator, as 8 is not restricted to i or 8 Due to its recursive form, this relation also presents a practical advantage; namely that its implementation in a symbolic language is straightforward The program NCUTransform implements in fact the more general relation

e-%eS = 2 + $ [J&S] + & [ [ri&?] + ; [ [ [T?,$,Q,Q + ,

Trang 8

190

thus permitting both unitary and non-unitary transformations to be described When invoked through NCUTransf orm[x, s], where x represents the operator 2 in the above and s the generator 3, NCUTrans- form makes as many calls to the two commands NCComExpand and NCComExpand2 of NCComAlg (applied successively in this order), as needed to generate the successive multiply nested commutators [, I,, in the sim- plest, i.e maximally reduced, symbolic form In certain cases, the generator e is such that after a number nmax

of iterations, subsequent commutators [ , ] n,+, vanish identically, in which case, the program will automatically terminate, and return an exact result But more often than not, the sequence of successive commutators con- tinues indefinitely, and I is represented by an infinite power series in cy, the terms of which are generally non-commutative, operator-valued functions of (?,p^) In practice, this series must be truncated at a certain order, kmax, of LY, even though 1, lk,,,,+ I remains nonzero In the present form of the program, this truncation

is decided by using a convergence criteria The program keeps track of all operator products generated up to the level k, and compares the coefficients of these operators with the corresponding ones computed at the level

k + 1 The program considers the series to have converged at k,,, = k + 1 only when the variations in those coefficients are less than lo-’ in absolute value An upper limit to k,,, corresponding to 32 iterations has been set in all the calculations shown below

In the most general case where c denotes a non-linear unitary transformation, we expect the above commutator series to be highly complex and resummation into a simple, closed-form expression may be impossible The resummation of such a series would be possible if the successive terms in the series commute with each other, which is generally not the case To handle this situation, the terms containing commuting operators of a given type, e.g functions of p^ only, must be collected together, giving a subseries which could be resummed analytically, using the procedure shown in the appendix A routine, named Polynom2CF, has been written to implement this series resummation procedure The syntax for its call is PolynomlLC[exp,var] ,exp being the series to be resummed with respect to the variable var

4 Examples

The examples shown in the present section are organised as follows Each of the Mathematics v.3.0 input lines

is presented left-flushed, followed (when applicable) by the corresponding output line centred To distinguish Mathematics expressions from other mathematical expressions, we have tried to keep the Mathematics native font for input/output The Mathematics input uses either NCAlgebra commands or new commands defined

in the NCComAlg and NCUTransform programs Table 1 outlines the commands invoked in terms of their origins and of the actions they produce

4 I Commutator algebra

We start by testing the commutator algebra as handled by NCComAlg First,

< < NCComAlg‘NCComAlgebra‘

loads the NCAlgebra package along with the three programs described in the previous section: NCComAlg, NCUTransform and Polynom2CF The basic commutator rules are well obeyed, as attested by the followings: entering

Com[ a, b + c] //NCComExpand2

returns

Com[ a, b] + Com[ a, c]

while

Trang 9

Com[ a * *d, b + c] //NCComExpand2

gives

191

a**Com[d,b]+a**Com[d,c]+Com[a,b]**d+Com[a,c]*td

Now, a more complex relation, the Jacobi identity, is verified, as

Com[Com[a,b],c] +Com[Com[b,c],a]+Com[Com[c,a],b]//NCComSimplify

returns

0

After checking the functioning of NCComAlg with respect to these basic rules, we illustrate the use of this program for the derivation of commutators of the type

appearing in various forms of the hypervirial theorem To this end, define a one-dimensional Hamiltonian of the following general form:

as encountered in some representation of a laser-driven system, which in field-free condition is described by the potential function Q(r) In this Hamiltonian, E represents the electric field, ai the dipole moment of the system, and ki’ a second-order response function A specific form of Q(r) needs not be given After declaring

fi to be an operator-valued variable, while cy, E, k, M, and n are c-numbers with

] ; SetCommutat SetNonCommutative[H

we enter

ive[cy,c,k,m,n];

NCComInit

to set [F, p^] = i, and

H= (l/(2 m))(p2) +V[r] fcu E r+k r2

to produce

2

5 +kr2+r&e+V[r]

With R = QY, the following commutator is involved in the demonstration of the virial theorem:

[A, ;(F$ +/??)I = [A,?p]

As is well known, this should give twice the kinetic energy operator plus (-i.&&,,) Entering

Com[H,r**p]//NCComSimplify

produces

-ip2

-+2ikr2+ira~+ir**V’[r]

(29)

Trang 10

192 N.-A Nguyen, TT Nguyen-Dan~/Cornl?uter Physics Cmmunicarions 115 (1998) 183-199

which is indeed the expected result With A = i2p^, one expects a term linear in p to appear in conjunction with PO2 and to arise from the commutator of A with the kinetic energy part of the Hamiltonian, while the potential part should give ( -i2&&) Indeed, entering

Com[H, r * *r * *p] //NCComSimplify

we obtain

-E2+2ikr3+ir2,e- 2ir**p2 + i r2 * *V’[ r]

As a generalization of the above, we have

Com[ H, rn * *p] //NCComSimplify

producing

4.2 Unitary transformations

In this section, the program NCU’lkansform is tested To this end, images of the basic canonical posi- tion/momentum pairs (i, p^) under various types of the generator, 6( P, p^), are determined It is well known [ 201 that the unitary transformation exp( ia@), (Y being independent of i and p^, is a translation in the configuration space This unitary transformation, corresponding to e = p^ in Eq (2), displaces the position operator by -cry, while it leaves the momentum operator invariant Entering

{NCUTransform[r,Ipa],NCUTransform[p,Ipa]}

returns the transformed pair (i( cu) , ~3 ( a) ),

{= - ff,PJ

which is the expected result

In general, if the generator is a pure function of a, then

P%p^l =o, [&,?I = -idpG’,

and the system of Eqs ( 12) predicts

P(a) = ? - af?/j~, /5((Y) =p^

Thus, with 8 = g2, entering

{NCUTransform[r, I p”2 a],NCUTransform[p, I p^2 a]}

we obtain

whereas with 6 = p^“, and

{NCUTransf orm[ r, I p*n cu] , NCUTransf orm[p, I p*n cy] }

we have

{r - np-l+na,p)

(30)

(31)

Ngày đăng: 19/10/2022, 17:47

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN