I didn’t use Mathematica for years and I am VERY rusty regarding the best way to solve this problem :
2*vectk.vectG = G^2,
k = 2*pi/lambda
I have the G vector and I want to find all vector k that can fit into this previous equation. Vect k should use some “primitive” vectors b1, b2 and b3.
I don’t know if Solve function can solve such a problem or if there is a problem with my syntax. If Solve cannot find such a solution, would you have some recommandations ? It is for a school project…
There are many problems with your code. The object {k1*b1, k2*b2, k3*b3} is a matrix. What do you mean by its Norm? The maximum singular value? Your first equation seems of the form vector==scalar. How can you hope to find integer solutions to an equation with inexact coefficients?
I don’t really understand the reasoning, but from my visualization of the problem, there should be a limited quantity of solutions. We only want the nodes in “the plan normal to vect.G passing throw (1/2)*vect.G” touched by vect.k who has a fixed length starting from the origin…
I used a completely different path. I made a list of the nodes of the lattice using Table, then extracted those included in the plan (an almost flat cylinder) with Select, then extracted again those at distance k from the origin.
I am curious to understand why my first approach didn’t work. But this is not vital either : /
What do you mean by “reasoning”? You asked for vectors having the same scalar-product g.k = G^2 / 2, and I gave you a method to construct such vectors. And there are infinitly many. Due to u and v for me it is a two-dimensional manifold. And of course you can normalize them and give them any lengths you want.
But perhaps I don’t understand your problem correctly. What do you mean by “nodes”? What do you want to do?