Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Alexander Stukowski

Pages: [1] 2 3 ... 11
1
Support Forum / Re: Compute Property Question
« on: October 21, 2017, 05:39:34 PM »
The atomic strain calculation is a little more elaborate than comparing average bond lengths. First, an atomic deformation gradient tensor is calculated, from which the atomic strain tensor and finally the volumetric and shear strain values are derived.

You can find technical details in the OVITO user manual and in section 3.2 of the attached document.

2
Great. Thanks for the quick effort.
Looks like the extra costs of double-precision computations are negligible. That's good news.

3
In the latest dev build of OVITO I have switched from single-precision to double-precision numbers as default floating-point data type. All calculations will now be performed with double precision in OVITO and the memory footprint becomes larger.

I would be interested in determining how that affects performance. If you have the time, it would be great if you could redo the benchmark run with the newest OVITO build to see if there is any measurable effect.

4
Support Forum / Re: segmentation fault
« on: October 20, 2017, 09:09:58 AM »
The log certainly shows that my instructions for turning off the network access during program startup did not work for some reason. If you have access to another macOS computer with a working Ovito installation, you can test whether the changes to the .plist settings file take effect. The updates.check_for_updates key in the settings file controls the user option "Auto-refresh news page from web server" in the Ovito application settings dialog. So setting it to false should uncheck the corresponding check box and vice versa.

I uploaded a new dev build of Ovito (3.0.0-dev46) yesterday. The macOS binary is build against the latest version of the Qt library (5.9.2). If you have the time, please try if that makes any difference.

5
Support Forum / Re: segmentation fault
« on: October 19, 2017, 07:11:59 PM »
This is surprising. Did you check if the program crash really is due to the same error as jjmolina reported above?

After the Ovito app crashes, a system dialog should appear. Click the "Report" button to see the error log. It should be similar to jjmolina's: 

Code: [Select]
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   org.qt-project.QtNetwork      0x000000010b5c4425 0x10b525000 + 652325
1   com.apple.CFNetwork            0x00007fffad35f5c4 PAC::PACClient::invokeClientCallback() + 102
2   com.apple.CoreFoundation      0x00007fffae0bd321 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17

If it's different, please post the error log here.

6
Support Forum / Re: Compute Property Question
« on: October 19, 2017, 01:14:08 PM »
Dear Debasis,

Yes, you are right: The Compute Property modifier stores the computed values as a new particle property which is non-visual at first. There are various ways to make that data visible.

For a vector property such as "Displacement", Ovito can render an arrow for each particle in the viewports. For this, you need to check the box next to the "Displacement" entry under the "Display" section of the pipeline editor. See the attached screenshot.

Another option to make property data visible is to use the Color Coding modifier to translate a scalar property (e.g. "Shear Strain" computed by the Atomic Strain modifier) into a particle color. So if you add this modifier to the pipeline, particles will be assigned a color based on the value of the selected particle property.

-Alex

7
Support Forum / Re: segmentation fault
« on: October 18, 2017, 06:41:41 PM »
I am pretty sure it is a text file, despite its unusual filename extension. On macOS, .plist files are XML-based config files.

8
Support Forum / Re: segmentation fault
« on: October 17, 2017, 07:44:47 PM »
As a workaround, I think the following should work:

  • Open the file $HOME/Library/Preferences/org.ovito.Ovito.plist in a text editor.
  • Look for the line <key>updates.check_for_updates</key>. Change the following line from <true/> to <false/>.

This disables the update check on program startup and Ovito won't access the network anymore.

I keep my eyes open in the hope that the Qt developers will fix this problem soon. I don't think there is any way I can fix this myself in the Ovito code.

Update to the instructions above:
The updates.check_for_updates entry may not exist yet. In this case, simply add the two lines to the config file.

9
Support Forum / Re: How to display all particles' Identifier?
« on: October 12, 2017, 02:28:33 PM »
Dear Sunny,

1. Do you mean showing the IDs as labels next to each particle in the interactive viewports? That is not possible, sorry.

2./3. The option "Show up to current time" is what you need to produce animated trajectory lines. By default, OVITO shows static trajectory lines that reflect the motion paths of particles over the entire simulation from beginning to end (including the "future" part of the motion, so to say). If you activate this display option, however, OVITO will render the lines only up to the current position of the particle that is generating the trajectory line, leaving out the "future" part.

4. There are two places in OVITO where you can select particles by numeric ID: The Expression Select modifier allows you to create a dynamically updated selection of particles (based on IDs or other criteria). This selection set may be used as input to subsequent operations such as coloring the particles. The second tool in OVITO which allows you to select particles is the Particle inspection utility. This is only meant as an interactive inspection tool, which allows you to look at the properties of certain particles of interest. However, it doesn't provide a way to modify these particles.

-Alex

10
Support Forum / Re: Remote Loading Error
« on: October 11, 2017, 11:41:22 PM »
If possible, please post the log output of ssh here when running it with the -vv command line option.

11
Support Forum / Re: Cluster Analysis with WS Analysis
« on: October 11, 2017, 10:02:28 PM »
Have you tried adding a line "import ovito" at the top of the script?

12
Support Forum / Re: Remote Loading Error
« on: October 11, 2017, 08:13:17 PM »
I looked up the error message ("Server sent invalid f") in the source code of the QSsh library, which is used by OVITO to access remote files. The error seems to be raised during the encryption key exchange with the SSH server. But my knowledge of the SSH protocol is nearly non-existent, so there is not much I can do about it from here. Apparently, the SSH server sends a response that is deemed invalid by the QSsh client library. You are the first one to report this particular error message, so it is likely caused by a special configuration of your SSH server.

Are you able to connect to the server using the standard SSH client from the terminal?

13
Support Forum / Re: Cluster Analysis with WS Analysis
« on: October 11, 2017, 08:49:30 AM »
I tested your first script. It seems to work correctly.

Since there is no loop over the frames in the cascade simulation, the first script so far only analyses the very first frame. Assuming there are no defects yet at the beginning of the simulation, you only get a single number as output. This number is the number of atoms with cluster ID 0. Any atoms that are not selected get assigned to this special cluster by the ClusterAnalysisModifier. They are all non-vacancy sites.

Let's now add a loop over the frames of the simulation:

Code: [Select]
from ovito.io import *
from ovito.data import *
from ovito.modifiers import *
import numpy

node = import_file("cascade.dump",multiple_frames = True)

# Perform Wigner-Seitz analysis:
ws = WignerSeitzAnalysisModifier(
    per_type_occupancies = False,
    eliminate_cell_deformation = True)
ws.reference.load("../crystal.dump")
node.modifiers.append(ws)

# Select vacancies (occupancy = 0)
select_vacancies_mod = SelectExpressionModifier(expression = 'Occupancy==0')
node.modifiers.append(select_vacancies_mod)

# Cluster vacancies
node.modifiers.append(ClusterAnalysisModifier(cutoff = 4.595, sort_by_size = True,only_selected=True))

for frame in range(ovito.dataset.anim.last_frame + 1):
output_filepath = "cluster_sizes.%i.txt" % frame
output = node.compute(frame)
cluster_sizes = numpy.bincount(output.particle_properties['Cluster'].array)
numpy.savetxt(output_filepath, cluster_sizes)

Here are a few points that I have corrected in your version of the script with the for-loop:

  • Do not call node.compute() until you are done populating the node's pipeline with modifiers. The compute() function evaluates all modifiers currently in the pipeline. You only need to call it once before you are going to access the final computation results.
  • Do not add modifiers to the pipeline inside the for-loop. Any call to node.modifiers.append() will add another modifier to the pipeline. If you do this n times, you will end up with a pipeline containing n copies of the SelectExpressionModifier and the ClusterAnalysisModifier and OVITO will perform the clustering computation n times when you finally call compute() (That is n-1 times more than necessary). The correct way is to insert these two modifiers before the for-loop just once.
  • You script called compute() on the currently selected node in the scene (ovito.dataset.selected_node). However, there is no selected node, because you never added a node to the scene in your script. The solution is to simply call node.compute(), i.e., on the ObjectNode referenced by the script variable node.

14
Version dev39 for Linux is now available for download. Please use this one for testing.

15
Please wait a moment. I was notified yesterday that the dev38 build for Linux is broken (some missing libraries etc). I am fixing it at this moment.

Pages: [1] 2 3 ... 11