### Author Topic: Solid state simulations  (Read 9393 times)

#### faq_user

• Member
• Posts: 23
##### Solid state simulations
« on: May 16, 2012, 01:59:12 PM »
I was hoping that you could help me with this. I played with your nmr_solids_1.m example, and tried to make a 'manual' pulse via the operators and evolution (see attached). The results are not the same. The 'manual' approach produces only one line, which the 'pulse_acquire' function produces a doublet, as it should. I am assuming I am doing something wrong here, but can't figure out what it is. Can you help me with this?

#### kuprov

• Member
• Posts: 58
##### Re: Solid state simulations
« Reply #1 on: May 16, 2012, 01:59:39 PM »
L=h_superop(spin_system);

only returns the isotropic Liouvillian. Use

[L,Q]=h_superop(spin_system);

To get the isotropic part and the irreducible components (25 of them in a cell array) of the anisotropic part. Then use the orientation() function to pick the orientation and feed the result to the evolution function. See the headers of h_superop() and orientation() for specifics.

#### faq_user

• Member
• Posts: 23
##### Re: Solid state simulations
« Reply #2 on: May 16, 2012, 01:59:58 PM »
Thank you, that solves it. I was pretty sure that I missed something.

One other thing I wanted to ask you - I hope you don't mind that I bug you about these things:

What's the best way to think about the state-space restriction in terms of coupled clusters?
My understanding is that first you do graph analysis which separates subspaces that don't couple to each other. However, your initial paper seems to suggest that if you have subspaces that have only 1 or 2 spins overlap there are still opportunities for cutting down state spaces. Is that true in general? For example, say you have two subspaces, with one spin in common. Then you can't 'uncouple' the two spaces, and it is not immediately clear where the savings would come from (e.g. if you required diagonalization, you would have to use the whole space). The same is true, if there isn't even a spin in common in the clusters, but if one spin from one cluster couples to one spin of the other cluster.

So just to summarize to make sure I understand this correctly:

1) first you do graph analysis to see whether you have completely uncoupled subspaces
2) then you do Krylov to reduce state spaces within each subspace
3) symmetry and ZTE can provide additional reductions

Is this correct?

#### kuprov

• Member
• Posts: 58
##### Re: Solid state simulations
« Reply #3 on: May 16, 2012, 02:00:15 PM »
Strictly speaking, the basis set is arbitrary  -- the local clusterization is just one of the reasonable methods that seem to work for NMR. It looks at what is connected to what and includes those product states that are judged to be important.

Indeed clusters can overlap by one or more spins, in which case the corresponding state spaces cannot be disentangled. But the direct sum of two subspaces (with intersection carefully removed to avoid duplication) is still a lot smaller than the direct product -- this is where the savings are coming from.

After the state list is compiled (using whatever method, you can simply tell Spinach to keep the states you want to keep), the rest is rigorous Lie algebra representation theory: operators are built in that basis and returned to the user. So the basis is up to the user ultimately, clusterization just happens to work rather well for NMR.

In general, the stages are:

1. Heuristic reduction based on our knowledge of the system. Could be clusterization, could be coherence order filter, could be blanket restriction to correlations lower than a certain level.

2. Construction of the Liouvillian matrix and state vectors in the resulting basis.

3. Analysis of Liouvillian to determine if it has any dynamically disconnected subspaces (symmetries, conservation laws, etc.). Those are simulated separately.

4. At run time, ZTE cuts the dimension to the absolute minimum required.

#### faq_user

• Member
• Posts: 23
##### Re: Solid state simulations
« Reply #4 on: May 16, 2012, 02:00:30 PM »
But you can only do the direct sum if you assume that the inter-cluster coupling will not entangle all the spins in both clusters. There is an overall rank limit, but within that rank you could have all combinations, correct?

#### kuprov

• Member
• Posts: 58
##### Re: Solid state simulations
« Reply #5 on: May 16, 2012, 02:00:44 PM »
Precisely – that is the core assumption. And the maximum rank can be different in different parts of the system – hence the “connectivity-adaptive” term.

#### faq_user

• Member
• Posts: 23
##### Re: Solid state simulations
« Reply #6 on: May 16, 2012, 02:00:59 PM »
So then I don't understand what the criterion for the clusterization is: is it based on an automated search considering relative coupling strengths?

#### kuprov

• Member
• Posts: 58
##### Re: Solid state simulations
« Reply #7 on: May 16, 2012, 02:01:14 PM »
On the number of couplings above a user-specified threshold. If a spin has k direct couplings to something else, IK-2 would include all product states up to k-spin orders involving that particular spin and its coupling partners into the basis.

#### faq_user

• Member
• Posts: 23
##### Re: Solid state simulations
« Reply #8 on: May 16, 2012, 02:01:27 PM »
I see, but does that mean you are throwing out all next-neares neighbor couplings?

#### kuprov

• Member
• Posts: 58
##### Re: Solid state simulations
« Reply #9 on: May 16, 2012, 02:01:50 PM »
Not necessarily – the basis includes all connected subgraphs up to a given size – so correlations between a pair of spins would be included if they occur together in at least one such subgraph. That is to say, if the max cluster size is set to 5, spins up to five couplings away from each other can be correlated in the resulting basis. But if two spins are further away than that, the correlation would not be included.

#### faq_user

• Member
• Posts: 23
##### Re: Solid state simulations
« Reply #10 on: May 16, 2012, 02:02:22 PM »
Just noticed one thing with the sample program that I am running (the same as before, just with the Haniso modification).
While secularity is set to 'nmr' in the script, the logfile says secularity is set to 'keep all'.

Also, I don't really understand why it takes a long time to set up the Zeeman hamiltonian (not a problem for two spins, but as soon as I try more spins, it rapidly becomes very slow to build each individual Zeeman term). Is this related to the secularity issue somehow?