diff --git a/README.md b/README.md index 13c79bcdc871a7aaf06fcde5c9cd4f3a0ede4687..14ed9543ac2df755dd764dc75959479e2d29f0a3 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ described in the following. Note that qualifiers, references and the like are di where it improves legibility. Consult the source files for more information. ### Template Type `Vec2` (`vec2.hpp`), 2-vector utility class -1. Template parameters +1. Template arguments - `value_t`: type of vector entries 2. Members - Access @@ -47,7 +47,7 @@ where it improves legibility. Consult the source files for more information. - `<<` with `std::ostream` ## Type `Diagonalizer` (`diagonalizer.hpp`), class to diagonalize symmetric Matrices -1. Members +1. Member functions - `std::vector<double> ev(std::vector<double> mat, size_t N)` - returns eigenvalues of the symmetric matrix mat of linear size N - throws upon diagonalization failure @@ -57,4 +57,47 @@ where it improves legibility. Consult the source files for more information. 2. Further developments - Only finding eigenvectors and -values in a certain range may be added later on -## Type +## Template Type `Drum` (`drum.hpp`), represents a single drum top resonator +1. Template arguments + - `value_t`: Scalar type + - `params_t`: Drum parameters container type + - `vars_t`: Drum variables container type + - `sbuffer_t`: Stepper buffer container type +2. Access + - `params_t get_parameters()` + - returns the parameters, const and reference versions implemented + - `vars_t get_variables()` + - returns the variables, const and reference versions implemented + - `sbuffer_t get_sbuffer()` + - returns the stepper buffer, const and reference versions implemented +3. Modifiers + - `void set_coupling_0(value_t)` + - Sets coupling 0 + - `void set_coupling_1(value_t)` + - Sets coupling 1 + - `void set_coupling_2(value_t)` + - Sets coupling 2 + - `void set_drive(value_t)` + - Sets central electrode coupling +4. Description +A drum is described by a set of (static) parameters (stiffness, mass, x-y position, etc), +which are to be stored in a container of type `params_t`. The variables (displacement, velocity, +electrode charges, etc.) are stored in a container of type `vars_t`. These containers may need to +be adapted to the situation at hand. When time evolving, the stepper will use the container of +type `sbuffer_t` to store its intermediate results. Note that the default constructor of +this class is `delete`d. It should be constructed from an object of type `params_t`. + +## Template Type `Rk4Stepper` (`rk4_stepper.hpp`), performs timesteps using rk4 scheme +1. Template arguments + - `value_t`: Scalar type + - `params_t`: Drum parameters container type + - `vars_t`: Drum variables container type + - `buffer_t`: Stepper buffer container type + - `force_t`: Force functional type +2. Member functions + - `void step_1(force_t, std::vector<drum_t>, std::vector<std::vector<int> >, value_t dt, value_t time)` + - `void step_2(force_t, std::vector<drum_t>, std::vector<std::vector<int> >, value_t dt, value_t time)` + - `void step_3(force_t, std::vector<drum_t>, std::vector<std::vector<int> >, value_t dt, value_t time)` + - All of the above perform one step of a timestep, between successive steps certain + other updates need to be taken care of. + - Arguments: Force functional, Drum vector, Adjacency vector, time step, start time of current step