VisuVibration

VisuVibration — Add a support to animate the node positions with a phonon frequency.

Functions

Properties

gfloat amplitude Read / Write
gfloat frequency Read / Write
guint n-modes Read / Write / Construct Only
gfloat reduced-time Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── ToolDbgObj
        ╰── VisuNodeValues
            ╰── VisuNodeValuesFarray
                ╰── VisuNodeValuesVector
                    ╰── VisuVibration

Implemented Interfaces

VisuVibration implements VisuAnimatable.

Description

Define a way to store vibration or phonons to a VisuData object. One can store several phonons in one object, each phonon is them represented by its id. The phonons can be animated on screen, using a user defined frequency (visu_vibration_setUserFrequency) and amplitue (visu_vibration_setAmplitude), by calling visu_vibration_play().

Phonons are set with visu_vibration_setCharacteristic() and VisuNode displacements are set with visu_vibration_setDisplacements().

Functions

visu_vibration_new ()

VisuVibration *
visu_vibration_new (VisuData *data,
                    const gchar *label,
                    guint n);

Creates a VisuVibration object to store n vibration modes for data .

Parameters

data

a VisuData object.

 

label

a label.

 

n

an integer.

 

Returns

a newly created VisuVibration object.

[transfer full]

Since: 3.8


visu_vibration_setDisplacements ()

gboolean
visu_vibration_setDisplacements (VisuVibration *vib,
                                 guint iph,
                                 const GArray *vibes,
                                 gboolean complex);

visu_vibration_init() must have been call before. This routine is used to define a set of displacement vectors, corresponding to one phonon. The displacement vectors can be complex , in that case vibes contains 6 values for each VisuNode.

Parameters

vib

a VisuVibration object.

 

iph

a phonon id.

 

vibes

a set of displacement vectors.

[element-type float]

complex

a flag.

 

Returns

TRUE on success.

Since: 3.5


visu_vibration_setCurrentMode ()

gboolean
visu_vibration_setCurrentMode (VisuVibration *vib,
                               guint iph,
                               GError **error);

Set all node displacements to zero and setup the displacement vector (u+iv) for each VisuNode. After this call, visu_vibration_play() will move the nodes according to their vibration.

Parameters

vib

a VisuVibration object.

 

iph

a phonon id.

 

error

a location for a possible error.

 

Returns

TRUE if its the first time VisuNodes are displaced.

Since: 3.5


visu_vibration_setCharacteristic ()

gboolean
visu_vibration_setCharacteristic (VisuVibration *vib,
                                  guint iph,
                                  const float q[3],
                                  float en,
                                  float omega);

This routine is used to define the characteristics of a given phonon.

Parameters

vib

a VisuVibration object.

 

iph

a phonon id.

 

q

a reciprocal vector.

 

en

the phonon energy.

 

omega

the phonon frequency.

 

Returns

TRUE on success.

Since: 3.5


visu_vibration_getCharacteristic ()

gboolean
visu_vibration_getCharacteristic (const VisuVibration *vib,
                                  guint iph,
                                  float q[3],
                                  float *en,
                                  float *omega);

This routine is used to get the characteristics of a given phonon, see visu_vibration_setCharacteristic() to set them.

Parameters

vib

a VisuVibration object.

 

iph

a phonon id.

 

q

a location for the reciprocal vector.

 

en

a locattion for the phonon energy.

 

omega

a location for the phonon frequency.

 

Returns

TRUE on success.

Since: 3.5


visu_vibration_setUserFrequency ()

gboolean
visu_vibration_setUserFrequency (VisuVibration *vib,
                                 float freq);

Change the frequency at which phonons are played with visu_vibration_play().

Parameters

vib

a VisuVibration object.

 

freq

a frequency.

 

Since: 3.5


visu_vibration_setAmplitude ()

gboolean
visu_vibration_setAmplitude (VisuVibration *vib,
                             float ampl);

Change the amplitude at which phonon are displayed on screen when using visu_vibration_play().

Parameters

vib

a VisuVibration object.

 

ampl

an amplitude.

 

Returns

TRUE if amplitude is actually changed.

Since: 3.5


visu_vibration_setTime ()

gboolean
visu_vibration_setTime (VisuVibration *vib,
                        gfloat at);

Defines the current time offset used to displace nodes according to phonon distortions.

Parameters

vib

a VisuVibration object.

 

at

a given reduced time in [0;1].

 

Returns

TRUE if value has been actually changed.

Since: 3.8


visu_vibration_resetPosition ()

void
visu_vibration_resetPosition (VisuVibration *vib);

Reset the node position of the given VisuData.

Parameters

vib

a VisuVibration object.

 

Returns

a boolean

Since: 3.5


visu_vibration_setZeroTime ()

void
visu_vibration_setZeroTime (VisuVibration *vib);

Reset the position of phonons to use position at time equals zero (so applying just the q vector displacement).

Parameters

vib

a VisuVibration object.

 

Since: 3.5


visu_vibration_getNPhonons ()

guint
visu_vibration_getNPhonons (VisuVibration *vib);

Retrieves the number of phonons in vib .

Parameters

vib

a VisuVibration object.

 

Returns

a number of phonons.

Since: 3.5


visu_vibration_animate ()

void
visu_vibration_animate (VisuVibration *vib);

Starts animating phonons.

Parameters

vib

a VisuVibration object.

 

Since: 3.8


visu_data_getVibration ()

VisuVibration *
visu_data_getVibration (VisuData *dataObj,
                        guint nModes);

Retrieves the VisuNodeValuesVector object used to store the vibration data. If this object is not existing already, it is created with nModes modes.

Parameters

dataObj

a VisuData object.

 

nModes

an integer.

 

Returns

a VisuNodeValuesVector owned by V_Sim.

[transfer none]

Since: 3.8

Types and Values

struct VisuVibration

struct VisuVibration;

Common name to refer to a _VisuVibration.


struct VisuVibrationClass

struct VisuVibrationClass {
  VisuNodeValuesVectorClass parent;
};

Common name to refer to a _VisuVibrationClass.

Members

VisuNodeValuesVectorClass parent;

private.

 

Property Details

The “amplitude” property

  “amplitude”                gfloat

oscilation amplitude.

Flags: Read / Write

Allowed values: >= 0

Default value: 1


The “frequency” property

  “frequency”                gfloat

oscilation frequency.

Flags: Read / Write

Allowed values: [0,50]

Default value: 5


The “n-modes” property

  “n-modes”                  guint

number of modes.

Flags: Read / Write / Construct Only

Allowed values: [1,G_MAXINT]

Default value: 1


The “reduced-time” property

  “reduced-time”             gfloat

time during an animation.

Flags: Read / Write

Allowed values: >= 0

Default value: 0