espressomd-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ESPResSo-devel] p3m kspace force calc, p3m stress tensor


From: Tobias Richter
Subject: Re: [ESPResSo-devel] p3m kspace force calc, p3m stress tensor
Date: Thu, 7 May 2015 14:17:06 +0200
User-agent: SquirrelMail/1.4.22

Hallo Axel,

soweit wie ich das ueberblicken kann, lese ich nicht ueber die Array
grenzen von rs_mesh und ks_mesh hinaus, ich lese genau
grid_x*grid_y*grid_z*2 punkte aus, Real- und Imaginaerteil fuer jeden grid
Punkt. Bilder sagen ja mehr als tausend Worte, in dem pdf im Anhang habe
ich, was ich fuer das Efeld halte geplottet. Nachdem was der Code in der
kspace Kraftberechnung sagt, ist dass die z-Komponente vom Efeld. Fuer
mich sieht der Realteil, schon so aus als wuerde er von einer Ladung im
Zentrum der Box erzeugt, zumindest fuer die erste Haelfte der Box.

Die Daten greife ich direkt in der p3m_calc_kspace_forces() ab, genau nach
der Ruecktrafo des k-Raum Efelds in R-raum, bevor die Kraefte vom Grid auf
die Partikel uebertragen werden und bevor
p3m_spread_force_grid(p3m.rs_mesh) aufgerufen wird.

Fuer die Simulation habe ich ein 12x12x12 grid.

Viele Gruesse,
Tobias

On Tue, May 5, 2015 22:43, Axel Arnold wrote:
> Hallo Tobias!
>
>> Am 04.05.2015 um 15:40 schrieb Tobias Richter
>> <address@hidden>:
>
>> die Komponenten haben vergleichbare Groesse (10^4) sowohl im Realteil
>> der
>> Kraft (E-Feld) als auch im Imaginaerteil. Die Mpi Meldung, dass der
>> Imaginaerteil nicht null ist, habe ich auch schon bekommen, als ich hier
>> und da die Reihenfolge der FFTs veraendert habe, den Fehler bekomme ich
>> aber nicht, wenn die vorgesehene Reihenfolge an FFTs eingehalten wird
>> (und
>> trotzdem riesige Zahlen im Imaginaerteil stehen).
>
> Der FFT-Code checkt aber genau das. (src/core/fft.cpp, ~393). Und zwar die
> ungeraden Zahlen.
>
>>
>> Die eingehende Ladungsverteilung kann ich mir aus unerklaerlichen
>> Gruenden
>> nicht waehrend der Kraftberechnung ausgeben. Ich habe mir daher die
>> Ruecktrafo angeschaut. Hier sind am "Ende" des Arrays grosse Werte im
>> Imaginaerteil (25) gegenueber dem Realteil (150). Der Realteil sieht
>> aber
>> ansonsten so aus wie ich das erwarten wuerde. Zum Testen habe ich eine
>> einzelne Ladung simuliert.
>>
>> Kann es sein das Real und Imaginaerteil nicht nebeneinander stehen, also
>> gerade real, ungerade imaginaer, wie das in der p3m_calc_kspace_forces()
>> angedeutet ist??
>
> Der Check-Code sagt was anderes, siehe oben. Ich würde eher mal denken,
> dass Du da zu weit liest oder so… Wenn der Check nicht anspringt, sind
> die Imaginärteile kleiner 1e-5, das passt nicht zu dem, was Du siehst.
> Also schaust Du was anderes an...
>
> Viele Grüße,
> Axel
>
>> On Thu, April 30, 2015 21:59, Axel Arnold wrote:
>>> Hallo Tobias,
>>>
>>> wie groß relativ zu den eigentlichen Beiträgen ist das denn?
>>> Eigentlich
>>> checkt der Code auch, dass im Imaginärteil nix drin steht, da gibt
>>> es
>>> eine extra Warnung, schau da mal. Und die hat in der Vergangenheit
>>> immer
>>> mal wieder in seltenen Fällen angeschlagen, wir haben aber nie
>>> verstanden, warum.
>>>
>>> Ansonsten kannst Du mal schauen, ob die einlaufende Ladungsverteilung
>>> auch
>>> brav reell ist, sonst wäre das kein Wunder, aber auch kein Problem -
>>> die
>>> FT ist bezüglich der beiden Komponenten unabhängig, man kann
>>> sogar im
>>> Prinzip in Real- und Imaginärteil zwei Ladungsverteilungen
>>> gleichzeitig
>>> berechnen, was man beim Interlacing ausnutzt.
>>>
>>> Viele Grüße,
>>> Axel
>>>
>>>
>>>> Am 30.04.2015 um 15:03 schrieb Tobias Richter
>>>> <address@hidden <mailto:address@hidden>>:
>>>>
>>>> Hello,
>>>>
>>>> I am currently trying to repair the contributions to the stress
>>>> tensor,
>>>> arising from the longrange electrostatics, so the k-space part.
>>>> For this I essentially need the forces on the mesh, or more precisely
>>>> the
>>>> electric field, since I evaluate the Maxwellian stress tensor.
>>>>
>>>> The problem I'm facing now is, that some components in the electric
>>>> field
>>>> still have non negligible imaginary components, which should
>>>> theoretically
>>>> be zero, since the acting force has to be real valued. I find those
>>>> nonzero imaginary parts in the p3m_calc_kspace_forces function, before
>>>> the
>>>> forces get assigned to the grid, so when the mesh should contain the
>>>> electric field, which (as I believe) should be strictly real valued.
>>>>
>>>> So is this just my misunderstanding or is there something wrong in the
>>>> calculation?
>>>>
>>>> Kind regards,
>>>> Tobias
>>>>
>>>
>>> ------------------------------------------------
>>> Dr. Axel Arnold
>>> ICP, Universität Stuttgart
>>> Allmandring 3
>>> 70569 Stuttgart, Germany
>>> Email: address@hidden
>>> <mailto:address@hidden>
>>> Phone: +49 711 685 67609
>>>
>>>
>>>
>>> --------------------------------------------
>>> Axel Arnold
>>> Martha-Schmidtmann-Str. 7
>>> 70374 Stuttgart, Germany
>>> Email: address@hidden
>>> Phone: +49 173 870 6659
>>>
>>>
>>
>>
>
> --------------------------------------------
> Axel Arnold
> Martha-Schmidtmann-Str. 7
> 70374 Stuttgart, Germany
> Email: address@hidden
> Phone: +49 173 870 6659
>
>

Attachment: force.pdf
Description: Adobe PDF document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]