Skip to main content

RDG Networks project

Project description

Overview

This Python package provides code regarding the RDG networks project.

License Python Version

Table of Contents

Features

No thickness

  • generate_line_segments: Function that determines the linesegments of a RDG network.
  • generate_line_network: Function that makes the underlying network of the linesegments.
  • get_intersection_segments: Function that determines the intersection segments of a RDG network.
  • generate_line_segments_dynamic: Function that determines the segments of a dynamic RDG network (with increasing linelengths in time).
  • draw_segments: Function that draws the segments.

Thickness

  • generate_line_segments_thickness: Generates segment network with thicknesses

  • orientate_network: Generates various rotated versions of the initial network.

  • save_to_stl: Saves the network as a stl file.

  • save_to_json: Saves data as a json file.

  • load_from_json: Loads data as a json file.

Installation

You can install the package using pip:

pip install RDG-networks

Usage

Output

The main function is called generate_line_segments_thickness and outputs the following data:

data_dict = {'segments_dict': segments_dict, 
             'polygon_arr': polygon_arr, 
             'segment_thickness_dict': segment_thickness_dict, 
             'jammed': jammed,
             'generated_config': generated_config}
  • segment_thickness_dict: contains the generated network, represented by multiple polygons.
  • segments_dict: contains auxilliary information of the generated network.
  • polygon_arr: contains auxilliary information of the generated network.
  • jammed: A boolean indicating if the system is jammed.
  • generated_config: An array containing all nucleation points and orientations of the segments.

Code example

import matplotlib.pyplot as plt
import numpy as np
import os
import sys
import random
from RDG_networks.thickness.generate_line_segments_thickness import generate_line_segments_thickness
from RDG_networks import save_to_stl
from RDG_networks.save_data import save_to_json, load_from_json

size = 15
lamb0 = 0.2
alpha = 0.52
thickness_arr = [lamb0 * t**(-alpha) for t in range(1, size + 1)]
box_size = 1
angles = [random.random() * 2 * np.pi for _ in range(size)]

# Generate initial structure with specified parameters
data_dict = generate_line_segments_thickness(size=size, thickness_arr=thickness_arr, angles=angles, box_size=box_size)

# Setup plot
fig, ax1 = plt.subplots(nrows=1, ncols=1, figsize=(5, 5))

segment_thickness_dict = data_dict['segment_thickness_dict']
for key, segment in segment_thickness_dict.items():
    segment.draw(ax1)
    middle_segment = segment.middle_segment
    if middle_segment:
        middle_segment.draw(ax1)

# Set plot limits and disable ticks
ax1.set(xlim=(0, 1), ylim=(0, 1))
ax1.set_xticks([])
ax1.set_yticks([])

# Save to STL and JSON files
save_to_stl(segment_thickness_dict, thickness=0.2, name=os.path.join(sys.path[0], 'network.stl'), frame_thickness=0.1)
file_path = os.path.join(sys.path[0], 'data.json')
save_to_json(data_dict, file_path)
data = load_from_json(file_path)

# Display the plot
plt.show()

Configuration

No specific configuration is required.

License

All Rights Reserved

The following code and its accompanying documentation are the property of Martijn (Niek) Mooij. All rights are reserved. No part of this code may be reproduced, distributed, or transmitted in any form or by any means, including photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the author, except in the case of brief quotations embodied in critical reviews and certain other noncommercial uses permitted by copyright law. For permission requests, write to the author at mooij.niek@gmail.com.

Copyright 2024 Niek Mooij

Contact

You can contact me at mooij.niek@gmail.com for any questions or suggestions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rdg_networks-0.3.14.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

RDG_Networks-0.3.14-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

Details for the file rdg_networks-0.3.14.tar.gz.

File metadata

  • Download URL: rdg_networks-0.3.14.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for rdg_networks-0.3.14.tar.gz
Algorithm Hash digest
SHA256 e50f17d5a36304a7dfb81bdbc2484e14eb8450c0731d836b8e639e6d437ffc04
MD5 45a626e1d8f8e2cd4b5e02a20cdd4fc3
BLAKE2b-256 38b86f407dee655f75801032cff2857591808289b6e8da9b0f729d55366c8806

See more details on using hashes here.

File details

Details for the file RDG_Networks-0.3.14-py3-none-any.whl.

File metadata

  • Download URL: RDG_Networks-0.3.14-py3-none-any.whl
  • Upload date:
  • Size: 34.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for RDG_Networks-0.3.14-py3-none-any.whl
Algorithm Hash digest
SHA256 c8f4de59b6754deddfda75a62f413322c1bfd868d164517e99a5efffcf31e3a0
MD5 0df640e9857bb68b6e642cdf3df33681
BLAKE2b-256 9342dfa2ed09fd9c83d26b0e042d96632c8859e1c7364778cba9c06ad83c78b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page