ecl-logo Documentation
ECL`

ExperimentMeasureContactAngle

ExperimentMeasureContactAngle[SolidSamples, WettingLiquids]Protocol

generates a Protocol object for determining the contact angle of SolidSamples with the given WettingLiquids.

    
Contact Angle Measurement is a technique that provides information on the wettability of fiber samples. A Wetted Length Measurement step may be performed in the beginning of the experiment because the wetted length, essentially the circumference of the given fiber sample, must be known first in order to calculate the contact angle from the force measurement data. In the process of Contact Angle Measurement, the fiber sample will be dipped into a wetting liquid along the direction of fiber length and then withdrawn from the liquid at a specified speed on the single fiber force tensiometer. During the process of dipping and withdrawing, the instrument measures the minuscule changes of force applied on the fiber sample from interfacial interaction. The measured force data can be used to calculate the contact angles via Wilhelmy equation.
    

Experimental Principles

    Figure 1.1: Procedural overview of a MeasureContactAngle experiment. Step 1: Prepare solid and liquid samples. The single fiber sample attached to a fiber sample holder, or a Wilhelmy plate (for qualification) will be mounted to the force sensor on the single fiber force tensiometer. The wetting liquid sample will be transferred into the specified immersion container and put on the sample stage on the instrument. Step 2: In the beginning the solid and liquid samples are not touching each other. When the measurement starts, the sample stage will move up first to detect the contacting position for the solid and liquid samples. Once the solid contacts the liquid, the sample stage will keep moving up until the specified start immersion depth. Then the measurement cycles star. In each cycle the sample stage will move up and down so the fiber sample will be immersed until the specified depth and then be withdrawn back to the start immersion depth. Step 3: The output data contains the measured force against the position (immersion depth) of fiber sample. The section where the fiber sample is immersing into the liquid is called "Advancing", and where the fiber sample is being withdrawn from the liquid is called "Receding". These two sections of data could be analyzed with linear regression to get the two dynamic contact angle values: advancing contact angle and receding contact angle.
    Figure 1.2: Procedural overview of the Wetted Length Measurement step for a MeasureContactAngle experiment. Step 1: Prepare solid and liquid samples. The single fiber sample attached to a fiber sample holder, or a Wilhelmy plate (for qualification) will be mounted to the micro-scale on the single fiber force tensiometer. The wetting liquid sample, such as n-hexane, should be known to have 0 degree contact angle with the given solid. The liquid will be transferred into the specified immersion container and put on the sample stage on the instrument. Step 2: In the beginning the solid and liquid samples are not touching each other. When the measurement starts, the sample stage will move up first to detect the contacting position for the solid and liquid samples. Once the solid and liquid contacts, the sample stage will keep moving up until the a start immersion depth, then the measurement starts that the sample stage moves up so the fiber sample will be immersed until the specified depth. Step 3: The output data contains the measured force against the position (immersion depth) of fiber sample, which could be analyzed with linear regression to get the wetted length of the fiber sample.

Instrumentation

    Kruss K100SF Force Tensiometer

    Figure 2.1: Instrument diagram for the Contact Angle Measurement system: On the top is microbalance/force sensor (0.1 microgram resolution), on which the fiber sample holder or probe is mounted. At bottom is the sample stage with a motor drive that can move at speed from 0.1 to 500 mm/min, on which there is a slot for the wetting liquid sample. When the sample stage is moving upward, the fiber is immersing into liquid, and hence it's called "advancing" phase; when the sample stage is moving downward, the fiber is withdrawn from liquid, and hence it's called "receding" phase.

Experiment Options

    General

    Instrument

    The instrument that is used to measure the contact angle between fiber and liquid samples.
    Default Value: Model[Instrument, Tensiometer, Kruss K100SF Force Tensiometer]
    Pattern Description: An object of type or subtype Model[Instrument, Tensiometer] or Object[Instrument, Tensiometer]
    Programmatic Pattern: ObjectP[{Model[Instrument, Tensiometer], Object[Instrument, Tensiometer]}]

    NumberOfReplicates

    The number of times to repeat measurement on each provided fiber sample(s). For example, if NumberOfReplicates->2, the sample will be measured twice with the same procedural settings.
    Default Value: Null
    Pattern Description: Greater than or equal to 1 in increments of 1 or Null.
    Programmatic Pattern: GreaterEqualP[1, 1] | Null

    Preparation

    Indicates if this unit operation is carried out primarily robotically or manually. Manual unit operations are executed by a laboratory operator and robotic unit operations are executed by a liquid handling work cell.
    Default Value: Automatic
    Pattern Description: Manual or Robotic.
    Programmatic Pattern: PreparationMethodP | Automatic

    Protocol

    WettedLengthMeasurement

    Indicates if the circumference of the input sample must be measured before contact angle measurement.
    Default Value: Automatic
    Default Calculation: Automatically set to True if fiber sample doesn't have its wetted length populated.
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP | Automatic
    Index Matches to: experiment samples

    WettedLengthMeasurementLiquids

    Indicates the liquid used for measuring the circumference of the input sample.
    Default Value: Automatic
    Default Calculation: Automatically set to True if fiber sample doesn't have its wetted length populated.
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or Null.
    Programmatic Pattern: (ObjectP[{Model[Sample], Object[Sample]}] | Automatic) | Null
    Index Matches to: experiment samples

    NumberOfCycles

    Number of times that the sample stage is raised and lowered such that the advancing contact angle is measured when raising and receding contact angle is measured when lowering.
    Default Value: Automatic
    Default Calculation: Automatically set to 1.
    Pattern Description: Greater than or equal to 1 and less than or equal to 10 in increments of 1.
    Programmatic Pattern: RangeP[1, 10, 1] | Automatic
    Index Matches to: experiment samples

    ContactDetectionSpeed

    The speed at which the sample stage is moved prior to contact between the sample and fiber until contact is made.
    Default Value: Automatic
    Default Calculation: Automatically set to 6 Millimeter/Minute.
    Pattern Description: Greater than or equal to 0.1 millimeters per minute and less than or equal to 500 millimeters per minute.
    Programmatic Pattern: RangeP[0.1*(Millimeter/Minute), 500*(Millimeter/Minute)] | Automatic
    Index Matches to: experiment samples

    ContactDetectionSensitivity

    The minimum change of the value measured by the sensor which determines the contact point of the fiber and liquid/air interface. The larger the value entered, the lower the sensitivity, and vice versa. Too high a value can lead to the surface not being detected. Too low a value can lead to changes in the measured value being incorrectly interpreted as contact with the surface.
    Default Value: Automatic
    Default Calculation: Automatically set to 0.01 Gram.
    Pattern Description: Greater than or equal to 1 microgram and less than or equal to 10 grams.
    Programmatic Pattern: RangeP[1*Microgram, 10*Gram] | Automatic
    Index Matches to: experiment samples

    MeasuringSpeed

    The speed at which the sample stage is moved up and down after contact between fiber and sample during a cycle. Increasing the measuring speed by too much will decrease the accuracy of the measurement.
    Default Value: Automatic
    Default Calculation: Automatically set to 3 Millimeter/Minute.
    Pattern Description: Greater than or equal to 0.1 millimeters per minute and less than or equal to 500 millimeters per minute.
    Programmatic Pattern: RangeP[0.1*(Millimeter/Minute), 500*(Millimeter/Minute)] | Automatic
    Index Matches to: experiment samples

    AcquisitionStep

    The distance the sample stage moves between each contact angle measurement. Decreasing this option increases the number of readings per length of sample.
    Default Value: Automatic
    Default Calculation: Automatically set to 0.2 Millimeter.
    Pattern Description: Greater than or equal to 1 micrometer and less than or equal to 10 millimeters.
    Programmatic Pattern: RangeP[1*Micrometer, 10*Millimeter] | Automatic
    Index Matches to: experiment samples

    StartImmersionDepth

    The immersion depth where the fiber sample starts advancing and ends receding.
    Default Value: Automatic
    Default Calculation: Automatically set to 1 Millimeter.
    Pattern Description: Greater than or equal to 0.1 micrometers and less than or equal to 5 millimeters.
    Programmatic Pattern: RangeP[0.1*Micrometer, 5*Millimeter] | Automatic
    Index Matches to: experiment samples

    EndImmersionDepth

    The immersion depth where the fiber sample ends advancing and starts receding.
    Default Value: Automatic
    Default Calculation: Automatically set to the sum of 25 AcquisitionStep or 5 Millimeter, whichever is smaller.
    Pattern Description: Greater than or equal to 0.1 micrometers and less than or equal to 35 millimeters.
    Programmatic Pattern: RangeP[0.1*Micrometer, 35*Millimeter] | Automatic
    Index Matches to: experiment samples

    StartImmersionDelay

    Waiting time after sample stage reaches the position of StartImmersionDepth and before it moves up again for the next cycle.
    Default Value: Automatic
    Default Calculation: Automatically set to 1 second.
    Pattern Description: Greater than or equal to 0 seconds and less than or equal to 10 minutes.
    Programmatic Pattern: RangeP[0*Second, 10*Minute] | Automatic
    Index Matches to: experiment samples

    EndImmersionDelay

    Waiting time after sample stage reaches the position of EndImmersionDepth and before it moves down.
    Default Value: Automatic
    Default Calculation: Automatically set to 1 second.
    Pattern Description: Greater than or equal to 0 seconds and less than or equal to 10 minutes.
    Programmatic Pattern: RangeP[0*Second, 10*Minute] | Automatic
    Index Matches to: experiment samples

    Temperature

    The temperature of thermal jacket, which heats up the wetting liquid in the immersion container, controlled by an external recirculating bath.
    Default Value: Ambient
    Default Calculation: Automatically set to ambient temperature.
    Pattern Description: Ambient or greater than or equal to 10 degrees Celsius and less than or equal to 50 degrees Celsius.
    Programmatic Pattern: RangeP[10*Celsius, 50*Celsius] | Ambient
    Index Matches to: experiment samples

    SamplePrep

    Volume

    The amount of wetting liquid to use in the ImmersionContainer into which the fiber is immersed.
    Default Value: Automatic
    Default Calculation: Automatically set to at most 80 Millimeter based on the remaining volume of liquid sample.
    Pattern Description: Greater than or equal to 0 milliliters and less than or equal to 100 milliliters in increments of 1 milliliter.
    Programmatic Pattern: RangeP[0*Milliliter, 100*Milliliter, 1*Milliliter] | Automatic
    Index Matches to: experiment samples

    ImmersionContainer

    The container model that holds the wetting liquid into which the fiber is immersed.
    Default Value: Automatic
    Default Calculation: Automatically set to Model[Container, Vessel, "Kruss SV20 glass sample vessel"] if Volume is greater than 35 mL. Otherwise, set to Model[Container, Vessel, "Kruss SV10 glass sample vessel"]
    Pattern Description: An object of type or subtype Model[Container, Vessel]
    Programmatic Pattern: ObjectP[Model[Container, Vessel]] | Automatic
    Index Matches to: experiment samples

    FiberSampleHolder

    The container model that holds the solid fiber sample and is mounted onto the force sensor of instrument.
    Default Value: Automatic
    Default Calculation: Automatically set to Model[Container, FiberSampleHolder, "Kruss single fiber sample holder"].
    Pattern Description: An object of type or subtype Model[Container, FiberSampleHolder]
    Programmatic Pattern: ObjectP[Model[Container, FiberSampleHolder]] | Automatic
    Index Matches to: experiment samples

    Post Experiment

    SamplesInStorageCondition

    The non-default conditions under which the SamplesIn of this experiment should be stored after the protocol is completed. If left unset, SamplesIn will be stored according to their current StorageCondition.
    Default Value: Null
    Pattern Description: {AmbientStorage, EnclosedAmbientStorage, Refrigerator, Freezer, DeepFreezer, CryogenicStorage, YeastIncubation, YeastShakingIncubation, BacterialIncubation, BacterialShakingIncubation, MammalianIncubation, ViralIncubation, CrystalIncubation, AcceleratedTesting, IntermediateTesting, LongTermTesting, UVVisLightTesting} or Disposal or Null.
    Programmatic Pattern: (Alternatives[SampleStorageTypeP | Disposal]) | Null
    Index Matches to: experiment samples

Sample Prep Options

    Sample Preparation

    PreparatoryUnitOperations

    Specifies a sequence of transferring, aliquoting, consolidating, or mixing of new or existing samples before the main experiment. These prepared samples can be used in the main experiment by referencing their defined name. For more information, please reference the documentation for ExperimentSamplePreparation.
    Default Value: Null
    Pattern Description: List of one or more unit Operation ManualSamplePreparation or RoboticSamplePreparation or unit Operation must match SamplePreparationP entries or Null.
    Programmatic Pattern: {((ManualSamplePreparationMethodP | RoboticSamplePreparationMethodP) | SamplePreparationP)..} | Null

Protocol Options

    Organizational Information

    Template

    A template protocol whose methodology should be reproduced in running this experiment. Option values will be inherited from the template protocol, but can be individually overridden by directly specifying values for those options to this Experiment function.
    Default Value: Null
    Pattern Description: An object of type or subtype Object[Protocol] or an object of type or subtype of Object[Protocol] with UnresolvedOptions, ResolvedOptions specified or Null.
    Programmatic Pattern: (ObjectP[Object[Protocol]] | FieldReferenceP[Object[Protocol], {UnresolvedOptions, ResolvedOptions}]) | Null

    Name

    A object name which should be used to refer to the output object in lieu of an automatically generated ID number.
    Default Value: Null
    Pattern Description: A string or Null.
    Programmatic Pattern: _String | Null

    Post Experiment

    MeasureWeight

    Indicates if any solid samples that are modified in the course of the experiment should have their weights measured and updated after running the experiment. Please note that public samples are weighed regardless of the value of this option.
    Default Value: Automatic
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null

    MeasureVolume

    Indicates if any liquid samples that are modified in the course of the experiment should have their volumes measured and updated after running the experiment. Please note that public samples are volume measured regardless of the value of this option.
    Default Value: Automatic
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null

    ImageSample

    Indicates if any samples that are modified in the course of the experiment should be freshly imaged after running the experiment. Please note that public samples are imaged regardless of the value of this option.
    Default Value: Automatic
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null

Example Calls

    Perform a Measure Contact Angle experiment

    Perform a Contact Angle Measurement experiment on a sample:
    Perform a Contact Angle Measurement experiment on multiple fiber samples and wetting liquids in the same protocol:

    Perform Wetted Length measurement during a Measure Contact Angle experiment

    If fiber circumference of the fiber sample is unknown, the additional wetted length measurement will be performed with n-hexane for a Measure Contact Angle experiment:
    Perform a wetted length measurement for a Measure Contact Angle experiment:
    Perform a wetted length measurement with a specified liquid for a Measure Contact Angle experiment:

    Perform a Measure Contact Angle experiment with specified measurement parameters

    Perform a Contact Angle Measurement experiment with a specified instrument:
    Perform a Contact Angle Measurement experiment with specified options of contact detection:
    Perform a Contact Angle Measurement experiment with specified options for measuring procedure:

Preferred Input Containers

    Glass containers for the wetting liquid provided by the instrument manufacturer.

Warnings and Errors

    Messages  (14)

    FiberCircumferenceRequired  (1)

    If FiberCircumference of fiber sample is Null and WettedLengthMeasurement is set to False, throw an error:

    IncompatibleSample  (2)

    The fiber sample input must be a solid fiber:

    The wetting liquid input must be a liquid sample:

    InvalidCount  (1)

    If total number of measurements (SamplesIn * NumberOfReplicates) is larger than the Count of each SamplesIn, throw an error:

    InvalidDepth  (1)

    If EndImmersionDepth is larger than the InternalDepth of ImmersionContainer, throw an error:

    InvalidImmersionDepths  (1)

    If EndImmersionDepth is smaller than StartImmersionDepth, throw an error:

    InvalidVolume  (1)

    If Volume is larger than the MaxVolume of ImmersionContainer, throw an error:

    ObjectDoesNotExist  (6)

    Do NOT throw a message if we have a simulated container but a simulation is specified that indicates that it is simulated:

    Do NOT throw a message if we have a simulated sample but a simulation is specified that indicates that it is simulated:

    Throw a message if we have a container that does not exist (ID form):

    Throw a message if we have a container that does not exist (name form):

    Throw a message if we have a sample that does not exist (ID form):

    Throw a message if we have a sample that does not exist (name form):

    SurfaceTensionRequired  (1)

    If SurfaceTension of wetting liquid sample is Null, throw a warning:

Possible Issues

    Wetting liquid is not included in the manufacturer's database.

    If the specified wetting liquid is not included in the manufacturer's database, we would need to manually type in certain physical parameters in order to run the experiment.
Last modified on Fri 5 Sep 2025 18:08:52