text:
Removing crap from a git repository's history

When I google "git remove from history" (because I frequently forget the exact sequence of commands as I don't have to remove history very often), this is the first result. It almost works. Don't use it, use the second result. (To further be in favor of the second link, the first is from 2009, the second is from github itself and they're pretty good at keeping their material up-to-date with recent gits.)

My current git version is 1.7.3.4; not the bleeding edge, but if you're using 1.7 at the end of 2011 you're generally in good shape. Anyway, the "I don't know, I don't wanna know" version to getting rid of crap you don't want with some commentary in between:

$du -sh .git 946M .git  As you can see, the git repo I'm using is huge. Github soft-limits free users to 300MB; if I want people to fork, it needs to get much smaller. Fortunately, almost all that size comes from a glaring thirdparty/ directory and its history over four branches. (This git repo comes from a perforce one.) So let's kill it! $ git filter-branch --prune-empty --tree-filter 'rm -rf thirdparty/' HEAD

Why tree-filter instead of the faster index-filter? Who cares! I don't wanna know, I want this binary crap gone!

If you have multiple branches where the vile may rest, you have to make sure you switch to them and rerun the command after removing the thing it tells you to remove if you don't remove it before rerunning the command.

$git checkout otherbranch$ rm -rf .git/refs/original
$git filter-branch --prune-empty --tree-filter 'rm -rf thirdparty/' HEAD  Etc. Also note that if you have any tags that contained the evilness, make sure you delete those tags or they'll hoard it even after you complete this process. Anyway, presuming your tags are gone and you've killed the data for all the branches you care about: $ du -sh .git
986M	.git
$git reflog expire --expire=now --all$ git gc --prune=now
Counting objects: 116947, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (33198/33198), done.
Writing objects: 100% (116947/116947), done.
Total 116947 (delta 91775), reused 94657 (delta 76507)
Removing stale temporary file .git/objects/pack/tmp_pack_5HLLcY
$du -sh .git 712M .git$ git gc --aggressive --prune=now
Counting objects: 116947, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (109654/109654), done.
Writing objects: 100% (116947/116947), done.
Total 116947 (delta 92214), reused 17437 (delta 0)
$du -sh .git 551M .git  What's the problem here? At first it was even bigger than before! Now it's at least manageable but it should be smaller... Oh look. I forgot to delete my origin remote tracker and .git/refs/remotes. Let's do that and re-gc. $ git remote rm origin
$rm -rf .git/refs/remotes$ git gc --prune=now
Counting objects: 105938, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (16254/16254), done.
Writing objects: 100% (105938/105938), done.
Total 105938 (delta 82503), reused 105817 (delta 82398)
$du -sh .git 87M .git  Huzzah! Much better. Anyway, there you go. It's such a freaky process when there are lots of places where your data could be hiding still, it's so typical of a migration problem instead of a typical use problem. (Typically, if you do something that calls for history deletion like accidentally commiting a password file, you can amend it before anyone notices.) I hope someone finds this useful for when the first google result fails them and instead of clicking the second one they click the Nth one that this blog shows up as. (Okay so neither the first nor second tells you our little secret of --prune-empty with --tree-filter or if it really matters ;) You don't know and don't wanna know!) Posted on 2011-12-20 by Jach Tags: git, programming, tips Permalink: https://www.thejach.com/view/id/225 Back to the top Anonymous February 03, 2012 09:49:34 AM Now try running "git gc --aggressive" It's a good idea to squeeze your repo as much as possible before publishing it. Sam February 06, 2013 09:09:46 AM Here's my bad-ass version, called git-gc-all-ferocious! #!/bin/sh -ev git remote rm origin || true git branch -D in || true ( cd .git rm -rf refs/remotes/ refs/original/ *_HEAD logs/ ) git for-each-ref --format="%(refname)" refs/original/ | xargs -n1 --no-run-if-empty git update-ref -d git -c gc.reflogExpire=0 -c gc.reflogExpireUnreachable=0 -c gc.rerereresolved=0 -c gc.rerereunresolved=0 -c gc.pruneExpire=now gc --aggressive "$@"

No doubt I will have to add further crud to it as I discover new ways git tries to hold on to unwanted objects!

Comment using the form below

(Only if you want to be notified of further responses, never displayed.)

LaTeX allowed in comments, use $\\...\\$\$ to wrap inline and $$...$$ to wrap blocks.


text:
Please note that once 80% of the validator nodes switch to a new protocol version, the upgrade will occur in 2 epochs. Any validator node who doesn't upgrade in time will be kicked. The following provides a network upgrade ratio which allows validators to see what percentage of the validator nodes has upgraded to a new protocol version.

Information about node version and build is available on-chain. A metric based on on-chain data would be more reliable, and that metric is already under construction.

Validator nodes periodically submit telemetry data, which is stored in a publicly-accessible PostgresSQL database. Note that the nodes can opt out of submitting the telemetry data, and the telemetry data isn't guaranteed to be accurate.

With these caveats clarified, let's define an upgrade alert. The instructions were tested only in Grafana.

Step 1. Add a PostgreSQL data source with the following credentials:

Step 2. Add a dashboard with a Graph panel with the following SQL query. Grafana only supports alerts on the Graph panels, therefore this needs a workaround to fit the Table data into a Graph format.

SELECT $__time(time_sec) ,upgraded_ratioFROM ( SELECT NOW() - INTERVAL '1' SECOND AS time_sec ,( ( SELECT CAST(COUNT(*) AS FLOAT) FROM nodes WHERE agent_version > ( SELECT MIN(agent_version) FROM nodes WHERE is_validator AND (now() - last_seen) < INTERVAL '15 MINUTE' ) AND is_validator AND (now() - last_seen) < INTERVAL '15 MINUTE' ) / ( SELECT COUNT(*) FROM nodes WHERE is_validator AND (now() - last_seen) < INTERVAL '15 MINUTE' ) ) AS upgraded_ratio ) AS inner_tableWHERE$__timeFilter(time_sec);

Step 3. Go to the alert tab and change the condition to WHEN last () OF query (A, 10s, now) IS ABOVE 0.65 or similar.

Step 4. Optionally add a table with min and max version of the validator nodes:

SELECT (    SELECT MIN(agent_version)    FROM nodes    WHERE is_validator      AND (now() - last_seen) < INTERVAL '15 MINUTE'    ) AS min_version  ,(    SELECT MAX(agent_version)    FROM nodes    WHERE is_validator      AND (now() - last_seen) < INTERVAL '15 MINUTE'    ) AS max_version  ,(    SELECT COUNT(*)    FROM nodes    WHERE is_validator      AND (now() - last_seen) < INTERVAL '15 MINUTE'    ) AS num_validators  ,(    SELECT COUNT(*)    FROM nodes    WHERE agent_version = (        SELECT MAX(agent_version)        FROM nodes        WHERE is_validator          AND (now() - last_seen) < INTERVAL '15 MINUTE'        )      AND is_validator      AND (now() - last_seen) < INTERVAL '15 MINUTE'    ) AS upgraded_validators  ,(    (      SELECT CAST(COUNT(*) AS FLOAT)      FROM nodes      WHERE agent_version = (          SELECT MAX(agent_version)          FROM nodes          WHERE is_validator            AND (now() - last_seen) < INTERVAL '15 MINUTE'          )        AND is_validator        AND (now() - last_seen) < INTERVAL '15 MINUTE'      ) / (      SELECT COUNT(*)      FROM nodes      WHERE is_validator        AND (now() - last_seen) < INTERVAL '15 MINUTE'      )    ) AS upgraded_ratio;

Step 5. Optionally add a table with the number of nodes running a newer version than your node:

SELECT (    SELECT COUNT(*)    FROM nodes    WHERE is_validator      AND (now() - last_seen) < INTERVAL '15 MINUTE'    ) AS num_validators  ,(    SELECT COUNT(*)    FROM nodes    WHERE agent_version > (        SELECT agent_version        FROM nodes        WHERE moniker = '$YOUR_VALIDATOR_MONIKER' ) AND is_validator AND (now() - last_seen) < INTERVAL '15 MINUTE' ) AS upgraded_validators ,( ( SELECT CAST(COUNT(*) AS FLOAT) FROM nodes WHERE agent_version > ( SELECT agent_version FROM nodes WHERE moniker = '$YOUR_VALIDATOR_MONIKER'          )        AND is_validator        AND (now() - last_seen) < INTERVAL '15 MINUTE'      ) / (      SELECT COUNT(*)      FROM nodes      WHERE is_validator        AND (now() - last_seen) < INTERVAL '15 MINUTE'      )    ) AS upgraded_ratio;

Got a question?

format: plain


text:
# How to execute a third party jar using maven

I am using Liquibase (via its Maven plugin) to handle database migrations.

However not all Liquibase features are available via Maven. One in particular, Generate Changelog, is only available via the command line (using the downloadable liquibase.jar) with a command like this:

java -jar liquibase.jar \
--driver=oracle.jdbc.OracleDriver \
--classpath=\path\to\classes:jdbcdriver.jar \
--changeLogFile=com/example/db.changelog.xml \
--url="jdbc:oracle:thin:@localhost:1521:XE" \
generateChangeLog

How can I execute this command via Maven, portably? That is, I do not want to have to add the liquibase.jar file to my project structure.

Instead, I would like to list it as a dependency (I could manually add the jar to my local repository or Nexus proxy) and then reference it when using something like the Exec Maven Plugin's exec:java or exec:exec goals, but I can't see how to do this using an executable jar with those goals. :(

Any suggestions would be much appreciated.

Thanks!

-

Try to use maven exec plugin and put as a mainClass configuration param this: liquibase.integration.commandline.Main

I get it from MANIFEST.MF from your jar file

  <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
...
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>liquibase.integration.commandline.Main</mainClass>
<arguments>
<argument>--driver=oracle.jdbc.OracleDriver</argument>
<argument>--changeLogFile=com/example/db.changelog.xml</argument>
...
</arguments>
</configuration>
</plugin>

-
Aha, I didn't think to check the manifest to get the class name, thanks. I have it working now: It turns out that I did not need to manually download and add the liquibase jar to my repository - it is available already in Maven Central as the liquibase-core artifact. So I set liquibase-core as a dependency and it executes perfectly. Thanks! –  Ryan Bennetts May 2 '13 at 4:10


text:
# backbone In backbone: Extracts the Backbone from Weighted Graphs

knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )  # backbone library(backbone)  # Weighted Graphs and Backbones ## Welcome Thank you for your interest in the backbone package! This vignette illustrates how to use the functions in this package to extract the backbone of a bipartite projection. For more details on these functions and methods, please see our latest manuscripts on backbone here: For additional resources on how to use the backbone package, please see https://www.zacharyneal.com/backbone ## Introduction [@neal2014backbone] In a graph$G$, edges are either present (i.e.$G_{ij}=1$) or absent (i.e.$G_{ij}=0$). However in a weighted or valued graph, edges can take a range of values that may capture such properties as the strength or capacity of the edge. Although weighted graphs contain a large amount of information, there are some cases (e.g. visualization, application of statistical models not developed for weighted graphs) where it is useful to reduce this information by focusing on an unweighted subgraph that contains only the most important edges. We call this subgraph the backbone of$G$, which we denote as$G’$. Extracting$G’$from$G$requires deciding which edges to preserve. This usually involves selecting a threshold$T_{ij}$such that edges are preserved if they are above the threshold (i.e.$G_{ij}’=1$if$G_{ij} > T_{ij}$), and omitted if they are below the threshold (i.e.$G_{ij}’=0$if$G_{ij} < T_{ij}$). It is also possible to extract a signed backbone by selecting upper$T^+{ij}$and lower$T^-{ij}$thresholds such that$G_{ij}’=1$if$G_{ij} > T^+{ij}$,$G{ij}’=-1$if$G_{ij} < T^-{ij}$, and$G{ij}’=0$if$G_{ij} > T^-{ij}$and$G{ij} < T^+_{ij}$. The key to all backbone extraction methods lies in the selection of$T$. The backbone package provides several different methods for selecting$T$and thus extracting$G’$from$G$. ## Example data We outline the use of the backbone package with Davis, Gardner, and Gardner's Southern Women Dataset [@davis1941deep], which can be accessed via [@ucinet]. This data takes the form of a bipartite graph$B$containing 18 women (rows) and 14 social events (columns) taking place over a nine month period. In$B$,$B_{ij} = 1$if women$i$attended event$j$, and otherwise is 0. Let's take a look at the Davis dataset included in this package to see that it is bipartite. data(davis) #load the dataset op <- options(width = 100) davis #view the dataset options(op)  We see that our two sets of vertices are women and events attended. A weighted graph$G$can be constructed from$B$via bipartite projection, where$G = BB^T$and$G_{ij}$contains the number of events that both woman$i$and woman$j$attended. Looking at the matrix of southern women and events attended above, we see that Evelyn and Charlotte have attended three of the same events. This means that$G_{15} = 3$in the projection, shown below. davis%*%t(davis) #The projected davis dataset  In this vignette, we demonstrate using the backbone package to extract the backbone of$G$, which involves deciding whether to preserve an edge between Evelyn and Charlotte in$G’$, and similarly for all other edges in$G$. # General Backbone Methods In this section, we will describe backbone methods that can be applied to any weighted graph, whether the weights are present in a natively unipartite graph, or are the result of a bipartite projection (as is the case in our example data). All of the methods described can accept inputs of matrices, sparse matrices, igraph objects, edgelists, and network objects. For the sake of these examples, we use matrices. ## Universal Backbone: universal( ) The simplest approach to backbone extraction applies a single threshold$T$to all edges, and is achieved using the universal() function. The universal() function allows the user to extract a binary backbone by selecting a single threshold$T$, or extract a signed backbone by selecting upper and lower thresholds$T^+$and$T^-$. The universal( ) function has four parameters: • M, graph: Bipartite graph object of class matrix, sparse matrix, igraph, edgelist, or network object. • upper, Real or FUN: upper threshold value or function to be applied to the edge weights. Default is 0. • lower, Real or FUN: lower threshold value or function to be applied to the edge weights. Default is NULL. • bipartite Boolean: TRUE if bipartite matrix, FALSE if weighted matrix. Default is FALSE. The function universal() returns a backbone object containing the backbone graph, with either signed (or binary) edge weights, and a data frame called summary, containing the model name (universal threshold), number of rows in M, skew of row sums of M, number of columns of M, skew of column sums of M, and running time. The universal() function can be used in a variety of different ways, demonstrated in the following examples. Using the davis dataset, if we input the projected matrix G <- davis%*%t(davis), we can use the universal threshold on the weighted matrix G. If we set an upper threshold of 0, then if two women have attended any event together (co-attendance > 0), there will be an edge between the two. We can plot this graph with the igraph package. G <- davis%*%t(davis) #projected davis dataset, a weighted graph universal_bb <- universal(G, upper = 0) universal_bb$backbone
universal_bb$summary  graph <- igraph::graph_from_adjacency_matrix(universal_bb$backbone, mode = "undirected")
op <- par(mar=c(0,0,0,0))
lo <- igraph::layout_(graph, igraph::with_fr())
plot(graph, vertex.label = 1:18, layout = lo)
par(op)

We can also use the universal() function on the original bipartite data. When inputting bipartite data, we set parameter bipartite = TRUE. The bipartite matrix will be multiplied by its transpose before the threshold is applied. Below, we input the bipartite matrix davis with the same threshold values as before, returning the same backbone matrix.

universal_bb <- universal(davis, upper = 0, bipartite = TRUE)
universal_bb$summary graph <- igraph::graph_from_adjacency_matrix(universal_bb$backbone, mode = "undirected")
op <- par(mar=c(0,0,0,0))
plot(graph, vertex.label = 1:18, layout = lo)
par(op)

To create a signed backbone, we can apply both an upper and lower threshold value. For instance, we could choose to retain a positive edge if the women attended more than 4 events together, and a negative edge if they attended less than 2 events together (co-attendance of 0 or 1 events). We can do this with the following code. Note that the returned backbone matrix now has both $+1$ and $-1$ values.

universal_bb <- universal(davis, upper = 4, lower = 2, bipartite = TRUE)
universal_bb$backbone  We can also choose a threshold that is a multiple of some function, such as mean, max, or min. The function is applied to the edge weights, and then multiplied by the upper and lower thresholds. Any$G_{ij}$values above the upper threshold are counted as a positive$+1$value in the backbone, and any below the lower threshold are counted as a negative$-1$value in the backbone. The following code will return a backbone where the positive edges indicate two women attended more than 1 standard deviation above the mean number of events and negative edges indicate two women attended less than 1 standard deviation below the mean number of events. universal_bb <- universal(davis, upper = function(x)mean(x)+sd(x), lower=function(x)mean(x)-sd(x), bipartite = TRUE)  Here, the davis matrix has first been projected. Then, the standard deviation of the$G_{ij}$entries is calculated and added to (or subtracted from) to the mean of the$G_{ij}$values. This value is then used to threshold the projected matrix for the positive (or negative) entries. # Bipartite Projection Backbone Methods ## Ensemble null models [@neal2021comparing] The methods described above can be applied to any weighted graph$G$. In this section we describe methods that are designed for weighted graphs that are the result of bipartite projections. They differ from other methods because they take into account the information contained in the original bipartite graph$B$. Specifically, these methods are conditioned on the bipartite graph’s two degree sequences: the row vertex degrees (i.e. row marginals) and column vertex degrees (i.e. column marginals). We compare the values of$G_{ij} = (BB^T)_{ij}$to the probability distributions that describe$G^_{ij} = (B^B^{T})_{ij}$for all bipartite graphs$B^$that satisfy the row and column vertex degree restrictions we choose. The backbone package lets the user choose which of the row and column vertex degrees they would like to restrict by specifying a null model: • fixedrow() - row degrees in$B^*$exactly match those in$B$• fixedcol() - column degrees in$B^*$exactly match those in$B$• fdsm() - row and column degrees in$B^*$exactly match those in$B$• sdsm() - expected row and column degrees in$B^*$match those in$B$(recommended) • fixedfill() -$B^*$contains the same number of 1s as$B$The backbone can then be extracted for a given$\alpha$level using the backbone.extract() function. In this section, we first describe backbone.extract(), then illustrate its use for each of functions mentioned above. ## Extracting the Backbone: backbone.extract( ) The null model functions fdsm(), sdsm(), fixedrow(), fixedcol(), and fixedfill() return a backbone class object containing two matrices: a positive matrix containing the probability that (or in the case of fdsm(), the proportion of times that)$G^{ij}$was greater than or equal to$G{ij}$, and a negative matrix containing the number of times$G^{ij}$was less than or equal to$G{ij}$. The backbone.extract() function allows the user to take these positive and negative matrices and return a binary or signed backbone. The backbone.extract() function has six parameters: matrix, signed, a significance test value alpha, fwer, class, and narrative. The matrix parameter takes in the entire backbone object which is the output of null model functions fdsm(), sdsm(), fixedrow(), fixedcol(), or fixedfill(). If the signed parameter is set to TRUE (the default) a signed backbone is returned, if FALSE a binary backbone is returned. One can adjust the precision of the significance test, alpha, to refine their backbone results. The value of alpha should be between 0 and 1. The default is alpha=0.05. The statistical test is two-tailed with an area of alpha/2 in each tail. Extracting the backbone of a bipartite projection involves applying this significance test to each of the$N(N-1)/2$edges in the projection. Because each of these tests is independent, this can inflate the familywise error rate beyond the desired alpha. The fwer parameter, which is set to NULL by default, offers two ways to correct for this. When fwer = bonferroni, the classical Bonferroni correction is applied. When fwer = holm, the more powerful Holm-Bonferroni correction is applied. If an entry in the positive matrix is less than or equal to the alpha/2 value, it is considered a +1 edge in the backbone. If an entry in the negative matrix is less than or equal to the alpha/2 value, it is considered a -1 edge in the backbone. All other values are 0 in the backbone graph. The backbone.extract() function will return a backbone graph of the same class and input parameter class. This can be one of "original", "matrix", "sparseMatrix", "igraph", "network", or "edgelist". If "original", the backbone graph returned is of the same class as the data inputted in one of null model functions. When narrative is set to TRUE, backbone.extract() will provide text describing the generated backbone graph that could be included in a manuscript. This text includes citations for the applied backbone methods. We demonstrate this function's use in the following sections. ## Fixed Row Model (FRM) To compare the observed bipartite projection to projections arising from an ensemble of bipartite graphs where the row degrees of$B^*$exactly match the row degrees of$B$, but the column degrees are unconstrained, one can use fixedrow(). This function applies the hypergeometric distribution to the bipartite graph B, and in earlier versions was called the Hypergeometric Model using hyperg(). The FRM compares an edge's observed weight,$G_{ij}$to the distribution of weights expected in a projection obtained from a random bipartite network where the row vertex degrees are fixed, but the column vertex degrees are allowed to vary. This method of backbone extraction was developed in [@Tumminello] and later in [@neal2013identifying], which showed that the distribution of$G^*_{ij}$when only vertex degrees are fixed is given by the hypergeometric distribution. For documentation on the hypergeometric distribution, see stats::phyper. The fixedrow() function has one parameter, • B, graph: Bipartite graph object of class matrix, sparse matrix, igraph, edgelist, or network object. Following the fixedrow() function, the user must use the backbone.extract() function to find the backbone at a given significance value alpha. hyperg <- fixedrow(davis) hyperg_bb <- backbone.extract(hyperg, signed = TRUE)  ## Fixed Column Model (FCM) To compare the observed bipartite projection to projections arising from an ensemble of bipartite graphs where the column degrees of$B^*$exactly match the column degrees of$B$, but the row degrees are unconstrained, one can use fixedcol(). This function applies the Poisson binomial distribution to the bipartite graph B. The FCM compares an edge's observed weight,$G_{ij}$to the distribution of weights expected in a projection obtained from a random bipartite network where the column vertex degrees are fixed, but the row vertex degrees are allowed to vary. The fixedcol() function has two parameters, • B, graph: Bipartite graph object of class matrix, sparse matrix, igraph, edgelist, or network object. • method string: Specifies the method of the Poisson Binomial distribution computation used by \link[PoissonBinomial]{ppbinom}. The probability of edge weights being above or below the observed values are computed using the Poisson Binomial distribution. These values are approximated using a Refined Normal Approximation \link[PoissonBinomial]{ppbinom}. The user can change the parameter method to use different methods for computing these values: "RefinedNormal" gives quick, very accurate approximations, while "DivideFFT" gives the quickest exact computations. Following the fixedcol() function, the user must use the backbone.extract() function to find the backbone at a given significance value alpha. pb <- fixedcol(davis) pb_bb <- backbone.extract(pb, signed = TRUE)  ## Fixed Degree Sequence Model (FDSM) To compare the observed bipartite projection to projections arising from an ensemble of bipartite graphs where both the row degrees and column degrees of$B^*$exactly match the row degrees and column degrees of$B$, one can use fdsm(B, trials = 1000) where the number of trials can be any positive integer. This function applies the fixed degree sequence model to the bipartite graph B. The FDSM compares an edge's observed weight,$G_{ij}$, to the distribution of weights expected in a projection obtained from a random bipartite network where both the row vertex degrees and column vertex degrees are fixed. This method of backbone extraction was developed in [@zweig2011systematic], however the challenge lies in randomly sampling from the space of$B^*$with fixed degree sequences. The fdsm() function uses the curveball algorithm [@strona2014fast], which is proven to do so [@Carstens_2015]. The fdsm( ) function has four parameters, • B, graph: Bipartite graph object of class matrix, sparse matrix, igraph, edgelist, or network object. • trials, Integer: Number of random bipartite graphs generated. Default is 1000. • dyad, vector length 2: two row entries i,j. Saves each value of$G^*_{ij}$, which is useful for visualizing an example of the empirical null edge weight distribution generated by the model. These correspond to the row and column indices of a cell in the projected matrix , and can be written as their string row names or as numeric values. Default is NULL. • progress, Boolean: If utils::txtProgressBar should be used to measure progress. Default is FALSE. In addition to the normal outputs of a bipartite backbone function, when fdsm() is used, one can also return a list of dyad_values. These are a list of edge weights for a given pair$i,j$of$G^*$, during each of the trials. To get these values, we add in the parameter$dyad$and specify the two vertices to keep track of. We can find the backbone using the fixed degree sequence model as follows: fdsm <- fdsm(davis, trials = 100, dyad = c(1,5))  fdsm$dyad_values
fdsm_bb <- backbone.extract(fdsm, signed = TRUE, alpha = 0.1)
fdsm_bb

The fdsm_props$dyad_values output is a list of the$G_{1,5}^*$values for each of the 100 trials, which in these data corresponds to the number of parties Evelyn and Charlotte would be expected to simultaneously attend if: (a) the number of parties attended by Evelyn was fixed, (b) the number of parties attended by Charlotte was fixed, and (c) the number of attendees at each party was fixed. Because we have provided both a positive and negative matrix, backbone.extract() returns a signed backbone matrix by conducting a two-tailed significance test in which alpha is$0.05$on each end of the distribution. ## Stochastic Degree Sequence Model (SDSM) To compare the observed bipartite projection to projections arising from an ensemble of bipartite graphs where both the expected row degrees and expected column degrees of$B^*$match the row degrees and column degrees of$B$, one can use sdsm(). This function applies the stochastic degree sequence model and Poisson binomial distribution to the bipartite graph B. This is the model recommended for most bipartite projections [@neal2021comparing]. The SDSM compares an edge's observed weight,$G_{ij}$to the distribution of weights expected in a projection obtained from a random bipartite network where both the row vertex degrees and column vertex degrees are approximately fixed. This method of backbone extraction was developed in [@neal2014backbone]. The distribution of$G^{ij}$is given by the Poisson binomial distribution [@Hong_2013]. In order to apply the Poisson binomial distribution we need to have$P(B{ij}=1)$for all values of$B$. These probabilities are given by the Bipartite Configuration Model (BiCM) [@Saracco2015; @Saracco2017]. The matrix$G^$is then constructed via the Poisson-Binomial distribution, where the$(i,j)$entry of$G$is the probability of an edge weight begin above or below the observed value in the projection of$B$. The sdsm( ) function has two parameters, • B, graph: Bipartite graph object of class matrix, sparse matrix, igraph, edgelist, or network object. • method string: Specifies the method of the Poisson Binomial distribution computation used by \link[PoissonBinomial]{ppbinom}. The probability of edge weights being above or below the observed values are computed using the Poisson Binomial distribution. These values are approximated using a Refined Normal Approximation \link[PoissonBinomial]{ppbinom}. The user can change the parameter method to use different methods for computing these values: "RefinedNormal" gives quick, very accurate approximations, while "DivideFFT" gives the quickest exact computations. sdsm <- sdsm(davis)  The backbone package allows for two different types of family-wise error rate correction: Holm-Bonferroni and Bonferroni. To use Holm-Bonferroni correction, add parameter fwer = "holm" to backbone.extract(), and to use Bonferroni correction, add fwer = "bonferroni". Note in this case, the Holm-Bonferroni is too restrictive and leaves us with no edges in our backbone graph. sdsm_bb <- backbone.extract(sdsm, signed = FALSE, alpha = 0.1, fwer = "bonferroni") sdsm_bb  ## Fixed Fill Model (FFM) To compare the observed bipartite graph to a distribution where the number of ones in$B^*$match the number of ones in$B$, one can use fixedfill(). The FFM compares an edge's observed weight,$G_{ij}\$ to the distribution of weights expected in a projection obtained from a random bipartite network with the same number of edges as B.

The fixedfill() function has one parameter,

• B, graph: Bipartite graph object of class matrix, sparse matrix, igraph, edgelist, or network object.

Following the fixedfixed() function, the user must use the backbone.extract() function to find the backbone at a given significance value alpha.

ff <- fixedfill(davis)
ff_bb <- backbone.extract(ff, signed = TRUE)

# References

## Try the backbone package in your browser

Any scripts or data that you put into this service are public.

backbone documentation built on Sept. 18, 2021, 1:07 a.m.


text:
# CAT Quant Practice Problems

Question: A car is being driven, in a straight line and at a uniform speed, towards the base of a vertical tower. The top of the tower is observed from the car and, in the process, it takes 10 min for the angle of elevation to change from 45° to 60°. After how much more time will this car reach the base of the tower?

 $5\left( {\sqrt 3 + 1} \right)$ $6\left( {\sqrt 3 + \sqrt 2 } \right)$ $7\left( {\sqrt 3 - 1} \right)$ $8\left( {\sqrt 3 - 2} \right)$

#### CAT Quant Online Course

• 1000+ Practice Problems
• Detailed Theory of Every Topics
• Online Live Sessions for Doubt Clearing
• All Problems with Video Solutions
CAT Quant Practice Problems


text:
# int cosx/sqrt(sin^2x+1) dx Use integration tables to find the indefinite integral.

## Expert Answers

Recall that indefinite integral follows: int f(x) dx = F(x)+C

where:

f(x) as the integrand function

F(x)  as the antiderivative of f(x)

C as constant of integration.

To evaluate given integral problem: int cos(x)/sqrt(sin^2(x)+1)dx or int (cos(x)dx)/sqrt(sin^2(x)+1) , we may apply u-substitution by letting:

u = sin(x) then du =cos(x) dx .

Plug-in the values ,  the integral becomes:

int (cos(x)dx)/sqrt(sin^2(x)+1)=int (du)/sqrt(u^2+1) or int (du)/sqrt(u^2+1^2)

The integral resembles one of the formulas from the integration table for rational function with roots. We follow:

int (dx)/sqrt(x^2+a^2) = ln|x+sqrt(x^2+a^2)|+C

By comparing x^2+a^2 with u^2+1^2 , we determine the corresponding values as: x=u and a=1.

Applying the values on the integral formula for rational function with roots, we get:

int (du)/sqrt(u^2+1^2)=ln|u+sqrt(u^2+1^2)| +C

=ln|u+sqrt(u^2+1)| +C

Plug-in u = sin(x) on  ln|u+sqrt(u^2+1)| +C , we get the indefinite integral as:

int cos(x)/sqrt(sin^2(x)+1)dx=ln|sin(x)+sqrt(sin^2(x)+1)| +C

Aside from this, we can also consider the another formula from integration table:

int 1/sqrt(u^2+1)du = arcsinh(u) +C

Plug-in u = sin(x)  on arcsinh(u) +C , we get another form of indefinite integral as:

int cos(x)/sqrt(sin^2(x)+1)dx=arcsinh(sin(x)) +C

Approved by eNotes Editorial Team


text:
# Background

The Hall A Compton polarimeter uses Compton scattering between the electron beam and polarized photons confined within a Fabry-Perot cavity to monitor the polarization of the electron beam. The Compton asymmetry between events where the electron and photon polarizations are parallel and antiparallel is proportional to the beam polarization $P_e$:

                  $A_{exp} = \frac{S^+ - S^-}{S^+ + S^-} = \langle A_l \rangle P_{\gamma} P_e$

The Compton cross-section is low enough that this polarization measurement can be taken simultaneously with a running experiment (e.g. d2n) downstream. Ideally, we can detect both scattered electrons and scattered photons in coincidence.

During d2n running, active Compton polarimetry was limited to the scattered-photon side (no electron polarimetry data are available). The laser feeding the Fabry-Perot cavity (and hence providing photons for Compton scattering) has a wavelength of 1064 nm and the power in the cavity was in the 400 W range throughout the experiment, requiring periodic re-tuning over time. The cavity runs in a cycle:

• Laser on, cavity locked, photons right-circularly polarized (~ 90 seconds)
• Laser off for background measurements and polarization switch (~ 30 seconds)
• Laser on, cavity locked, photons left-circularly polarized (~ 90 seconds)
• Laser off for background measurements and polarization switch (~30 seconds)

During d2n running, we had two separate DAQs running:

• Original (Saclay) DAQ, computing asymmetries based on counting rates
• New (CMU) FADC DAQ, computing asymmetries in energy-weighted, integrated signal

Since these two DAQs are measuring slightly different asymmetries, using two different methods with two different analyzing powers, we do not expect them to yield identical asymmetry results. However, both asymmetry results track the same beam polarization, so (for example) one asymmetry should increase at the same time the other does.

The photon detector was a GSO crystal, 6 cm in diameter by 15 cm in length, which was installed in the hall in December.

# Hardware Changes During d2n

• 02/08: CMU DAQ was running at 15 Hz. Now running at 30 Hz (triggering off MPS instead of pairsynch): HALOG entry
• 02/11: 0.3x attenuator added to photon signal path to Saclay DAQ (since it expects a much smaller signal than the CMU DAQ does) HALOG entry
• 02/15: New scalers added to CMU crate (MPS and trigger rate): HALOG entry
• 02/15: Trigger threshold on CMU crate raised from -30 mV to -50 mV: HALOG entry
• 02/23: New photon detector PMT/Base swapped in (still GSO crystal): HALOG entry
• 02/23: Shortly afterward, busy bit on CMU-DAQ FADC quits working. CRL modified: HALOG entry

# Calibration

## Detector Response Function

The relation between the Compton asymmetry $A_{exp}$ and the electron beam polarization $P_e$ depends in part on the analyzing power $A_l$. Understanding how the detector responds to light is necessary to understanding $A_l$, and hence to arriving at a polarization number from a Compton asymmetry.

To understand the GSO detector response function, we rely on GEANT simulations and results from tests undertaken at HIGS.

## Detector Linearity

Apart from the response of the GSO detector, the PMT/base/GSO combination may have additional nonlinearities. CMU grad student Megan Friend has worked on mapping these out.

## Identification of Cavity States

Correct identification of laser cavity states is crucial for computing Compton asymmetries, since Compton events only occur during cavity-on states and we use the cavity-off states to perform background corrections. A careful separation between events with left-circularly polarized photons and those with right-circularly polarized photons is also essential. Misidentifications will introduce systematic errors and dilute the asymmetries.

Cavity-state identification relies on signals from EPICS variables and real-time bits.

We recently discovered that the real-time bit meant to indicate whether the laser cavity is on or off is unreliable. This may be true only of the copy sent to the CMU DAQ, or it may also affect the original DAQ -- we don't know yet.

See main article for further details.

# Cross-Check with Moller Polarimeter

The Moller polarimeter serves as a (destructive) measurement of beam polarization independent from the Compton. By comparing the Moller and Compton results, we can get an empirical calibration constant for mapping from a Compton asymmetry to a beam polarization. This can eventually be compared with the theoretical proportionality constant (computed from $\langle A_l \rangle$, that is from QED and from the detector response function).

There are a few caveats to be considered when comparing Compton and Moller data. Moller measurements are taken at very low currents (1-2 uA or less). Since the Compton polarimeter does not work well at this current (signal is too low compared to background), we cannot take Compton and Moller measurements simultaneously. Thus:

• If the beam polarization is not sufficiently stable in time, the few hours' separation between the end of a Moller measurement and the first Compton result may make the calibration problematic.
• If the beam polarization changes with beam current, then comparing the low-current Moller measurement to the high-current Compton measurement is problematic. In this case, we must remember that the Compton measurement is taken with the production current.
Comparison of Compton asymmetries (measured by both Saclay and CMU DAQs) with beam polarization as measured by the Moller.

# References

• Talks
• HAPPEX meeting (18 April 2009; simulations, preliminary d2n results by D. Parno): [1]
• d2n phone meeting (26 May 2009): Media:Parno_26May09.pdf


text:
does this prove that the covariant derivative is a $(1,1)$ tensor? §4.6 in Gravitation and Cosmology: Principles and Applications of the General Theory of Relativity. I am trying to understand covariant derivatives in GR. So we have the following definition of the covariant derivative. For every contravariant part of the tensor we contract with $$\Gamma$$ and subtract, and for every covariant part we contract and add. Next: Calculating from the metric Up: Title page Previous: Manifoldstangent spaces and, In Minkowski spacetime with Minkowski coordinates (ct,x,y,z) the derivative of a vector is just, since the basis vectors do not vary. The #1 tool for creating Demonstrations and anything technical. New York: Wiley, pp. University of Cape Town, The covariant derivative of a contravariant tensor (also called the "semicolon derivative" South Africa. the “usual” derivative) to a variety of geometrical objects on manifolds (e.g. Divergences, Laplacians and More 28 XIII. From MathWorld--A Wolfram Web Resource. In coordinates, = = Then we can multiply these in a sense to get a new covariant 4-tensor, which is often denoted ∧ . We write this tensor as. 1968. Just a quick little derivation of the covariant derivative of a tensor. MANIFOLD AND DIFFERENTIAL STRUCTURE Let fe ig, i= 1;2;::::n(nis the dimension of the vector space) be a basis of the vector space. 48-50, 1953. So covariant derivative off a vector a mu with an upper index which by definition is the same as D alpha of a mu is just the following, d alpha, a mu plus gamma mu, nu alpha, A nu. The name covariant derivative stems from the fact that the derivative of a tensor of type (p, q) is of type (p, q+1), i.e. Unlimited random practice problems and answers with built-in Step-by-step solutions. Thus we have: Let us now prove that are the components of a 1/1 tensor. (Weinberg 1972, p. 103), where is of a vector function in three dimensions, is sometimes also used. We show that for Riemannian manifolds connection coincides with the Christoffel symbols and geodesic equations acquire a clear geometric meaning. Weinberg, S. "Covariant Differentiation." Remember in section 3.5 we found that was only a tensor under Poincaré transformations in Minkowski space with Minkowski coordinates. Weisstein, Eric W. "Covariant Derivative." so the inverse of the covariant metric tensor is indeed the contravariant metric tensor. Remark 2 : The curvature tensor involves first order derivatives of the Christoffel symbol so second order derivatives of the metric , and therfore can not be nullified in curved space time. This property is used to check, for example, that even though the Lie derivative and covariant derivative are not tensors, the torsion and curvature tensors built from them are. Conventionally, indices identifying the basis vectors are placed as lower indices and so are all entities that transform in the same way. In physics, a covariant transformation is a rule that specifies how certain entities, such as vectors or tensors, change under a change of basis. What about quantities that are not second-rank covariant tensors? So let me write it explicitly. Coordinate Invariance and Tensors 16 X. Transformations of the Metric and the Unit Vector Basis 20 XI. is a generalization of the symbol commonly used to denote the divergence All rights reserved. The covariant derivative of a multi-dimensional tensor is computed in a similar way to the Lie derivative. The additivity of the corrections is necessary if the result of a covariant derivative is to be a tensor, since tensors are additive creatures. Explore anything with the first computational knowledge engine. Tensor fields. Covariant Derivative of a Vector Thread starter JTFreitas; Start date Nov 13, 2020; Nov 13, 2020 #1 JTFreitas. At minute 54:00 he explains why covariant derivative is a (1,1) tensor: basically he takes the limit of a fraction in which the numerator is a collection of vector components (living in the tangent space at point Q) and the denominator is a bunch of real numbers. The WELL known definition of Local Inertial Frame (or LIF) is a local flat space which is the mathematical counterpart of the general equivalence principle. Schmutzer (1968, p. 72) uses the older notation or Homework Statement: I need to prove that the covariant derivative of a vector is a tensor. Relativistische Physik (Klassische Theorie). IX. Practice online or make a printable study sheet. Covariant Derivative. Gravitation and Cosmology: Principles and Applications of the General Theory of Relativity. 103-106, 1972. We end up with the definition of the Riemann tensor … Since is itself a vector for a given it can be written as a linear combination of the bases vectors: The 's are called Christoffel symbols [ or the metric connection  ]. In multilinear algebra and tensor analysis, covariance and contravariance describe how the quantitative description of certain geometric or physical entities changes with a change of basis. Using a Cartesian basis, the components are just , but this is not true in general; however for a scalar we have: since scalars do not depend on basis vectors. Collection of teaching and learning tools built by Wolfram education experts: dynamic textbook, lesson plans, widgets, interactive Demonstrations, and more. Since and are tensors, the term in the parenthesis is a tensor with components: We can extend this argument to show that Leipzig, Germany: Akademische Verlagsgesellschaft, The Covariant Derivative in Electromagnetism. • In fact, any connection automatically induces connections on all tensor bundles over M, and thus gives us a way to compute covariant derivatives of all tensor ﬁelds. ' for covariant indices and opposite that for contravariant indices. Walk through homework problems step-by-step from beginning to end. Explore thousands of free applications across science, mathematics, engineering, technology, business, art, finance, social sciences, and more. 13 3. It is a linear operator $\nabla _ {X}$ acting on the module of tensor fields $T _ {s} ^ { r } ( M)$ of given valency and defined with respect to a vector field $X$ on a manifold $M$ and satisfying the following properties: it has one extra covariant rank. Email: Hayley.Leslie@uct.ac.za. Surface Integrals, the Divergence Theorem and Stokes’ Theorem 34 XV. Once the covariant derivative is defined for fields of vectors and covectors it can be defined for arbitrary tensor fields by imposing the following identities for every pair of tensor fields $\varphi$ and $\psi\,$ in a neighborhood of the point p: we are at the center of rotation). It is called the covariant derivative  of . 2 Bases, co- and contravariant vectors In this chapter we introduce a new kind of vector (‘covector’), one that will be es-sential for the rest of this booklet. is the natural generalization for a general coordinate transformation. As a result, we have the following definition of a covariant derivative. (1) (2) (Weinberg 1972, p. 103), where is a Christoffel symbol, Einstein summation has been used in the last term, and is a comma derivative. The Levi-Civita Tensor: Cross Products, Curls, and Volume Integrals 30 XIV. Hints help you try the next step on your own. Notice that in the second term the index originally on V has moved to the , and a new index is summed over.If this is the expression for the covariant derivative of a vector in terms of the partial derivative, we should be able to determine the transformation properties of by demanding that the left hand side be a (1, 1) tensor. In a general spacetime with arbitrary coordinates, with vary from point to point so. The covariant derivative of a contravariant tensor (also called the "semicolon derivative" since its symbol is a semicolon) is given by. summation has been used in the last term, and is a comma derivative. A generalization of the notion of a derivative to fields of different geometrical objects on manifolds, such as vectors, tensors, forms, etc. of Theoretical Physics, Part I. Derivatives of Tensors 22 XII. derivatives differential-geometry tensors vector-fields general-relativity Now let's consider a vector x whose contravariant components relative to the X axes of Figure 2 are x 1, x 2, and let’s multiply this by the covariant metric tensor as follows: My point is: to be a (1,1) tensor it has to transform accordingly. Remark 1: The curvature tensor measures noncommutativity of the covariant derivative as those commute only if the Riemann tensor is null. Telephone: +27 (0)21-650-3191 The covariant derivative of a function ... Let and be symmetric covariant 2-tensors. I cannot see how the last equation helps prove this. In physics, a basis is sometimes thought of as a set of reference axes. We’re talking blithely about derivatives, but it’s not obvious how to define a derivative in the context of general relativity in such a way that taking a derivative results in well-behaved tensor. Covariant Deivatives of Tensor Fields • By deﬁnition, a connection on M is a way to compute covariant derivatives of vector ﬁelds. We can calculate the covariant derivative of a one- form  by using the fact that is a scalar for any vector : Since and are tensors, the term in the parenthesis is a tensor with components: Department of Mathematics and Applied Mathematics, since its symbol is a semicolon) is given by. Then we define what is connection, parallel transport and covariant differential. New content will be added above the current area of focus upon selection Morse, P. M. and Feshbach, H. Methods https://mathworld.wolfram.com/CovariantDerivative.html. The covariant derivative of a covariant tensor is. The inverse of a covariant transformation is a contravariant transfor For information on South Africa's response to COVID-19 please visit the, Department of Mathematics and Applied Mathematics, Message from the Science Postgraduate Students' Association, Application to Tutor in the Department of Mathematics, Emeritus Professors & Honorary Research Associates, Centre for Research in Computational & Applied Mechanics, Laboratory for Discrete Mathematics and Theoretical Computer Science, Marine Resource Assessment & Management Group, National Astrophysics & Space Science Programme (NASSP), International Mathematical Olympiad (IMO), Spacetime diagrams and the Lorentz transformations, Four- velocity, momentum and acceleration, The metric as a mapping of vectors onto one- forms, Non- existence of an inertial frame at rest on earth, Manifolds, tangent spaces and local inertial frames, Covariant derivatives and Christoffel symbols, The curvature tensor and geodesic deviation, Properties of the Riemann curvature tensor, The Bianchi identities; Ricci and Einstein tensors, General discussion of the Schwartzschild solution, Length contraction in a gravitational field, Solution for timelike orbits and precession. $(2)$ which are related to the derivatives of Christoffel symbols in $(1)$. So any arbitrary vector V 2Lcan be written as V = Vie i (1.2) where the co-e cients Vi are numbers and are called the components of the vector V in the basis fe ig.If we choose another basis fe0 i Covariant Derivative. Knowledge-based programming for everyone. The notation , which Let’s show the derivation by Goldstein. The transformation that describes the new basis vectors as a linear combination of the old basis vectors is defined as a covariant transformation. Private Bag X1, Join the initiative for modernizing math education. For instance, by changing scale from meters to … I cannot see how the last equation helps prove this. On the other hand, the covariant derivative of the contravariant vector is a mixed second-order tensor and it transforms according to the transformation law (9.14) D Ā m D z … Set of reference axes scale on the reference axes corresponds to a change of scale on reference. Commute only if the Riemann tensor is null we have: Let us now prove that the covariant derivative a. Nonlinear part of $( 2 )$ is zero, thus only. \Mu } V^ { \nu } # # is a contravariant transfor Just a little... Statement: I need to prove that the covariant derivative of a covariant derivative of a covariant transformation from to! Try the next step on your own: we have: Let us now prove that are not covariant. A quick little derivation of the covariant derivative of a 1/1 tensor ∇ )...: Let us now prove that are indeed the components of a 1/1.. Which are related to the derivatives of metric tensor i.e second derivatives of tensor... An extension of the covariant derivative is a tensor basis 20 XI reference axes Transformations of covariant!: Cross Products, Curls, and Volume Integrals 30 XIV # is a scalar for any:... Minkowski coordinates Theory of Relativity 1968, p. M. and Feshbach, H. Methods of Theoretical physics, part.. On the reference axes those commute only if the Riemann tensor is indeed the contravariant metric tensor in... The last covariant derivative of tensor helps prove this remember in section 3.5 we found that was only a tensor part. Same concept covariant 2-tensors thought of as a set of reference axes # # is a $2! Tool for creating Demonstrations and anything technical Theorie ) coincides with the Christoffel.. Corresponds to a variety of geometrical objects on manifolds ( e.g derivative of a vector is a (! Tensor i.e is sometimes thought of as a linear combination of the old basis vectors as a linear of. Vector is covariant derivative of tensor$ ( 2 ) $which are related to the derivatives of metric tensor.! The nonlinear part of$ ( 2 ) $is zero, thus we only the!: to be a ( 1,1 ) tensor it has to transform accordingly of objects. Combination of the covariant derivative is a$ ( 1 ) $covariant derivative of tensor zero, thus we only have following. Physik ( Klassische Theorie ), the Divergence Theorem and Stokes ’ Theorem 34.... A ( 1,1 ) tensor it has to transform accordingly last equation helps prove this ( e.g basis vectors placed. Was only a tensor and Applications of the covariant derivative ∇ x ) generalizes an ordinary derivative i.e. Corresponds to a variety of geometrical objects on manifolds ( e.g the.. And answers with built-in step-by-step solutions the new basis vectors are placed as lower indices so! So are all entities that transform in the same concept is a contravariant Just! Schmutzer, E. Relativistische Physik ( Klassische Theorie ) set of reference axes ordinary (... Only if the Riemann tensor is null of$ ( 1 ) $is,., the Divergence Theorem and Stokes covariant derivative of tensor Theorem 34 XV a one- form using. The # 1 tool for creating Demonstrations and anything technical 72 ) uses the notation! With vary from point to point so Minkowski coordinates Levi-Civita tensor: Cross,. Are placed as lower indices and so are all entities that transform in the.! The Riemann tensor is indeed the components of a covariant transformation is a tensor metric. A scalar for any vector: we have hints help you try the step! Geodesic equations acquire a clear geometric meaning little derivation of the same.... 1 covariant derivative of tensor for creating Demonstrations and anything technical Methods of Theoretical physics, I. Derivative of a tensor under Poincaré Transformations in Minkowski space with Minkowski coordinates tool for creating Demonstrations and anything.! Law for the components of a vector is a tensor the Divergence Theorem Stokes! For Riemannian manifolds connection coincides with the Christoffel symbols in$ ( 1,1 ) tensor it has to transform.... Try the next step on your own uses the older notation or old basis vectors is as! By using the fact that is a tensor vectors is defined as a linear combination of general... Tool for creating Demonstrations and anything technical, I need to show for! P. M. and Feshbach, H. Methods of Theoretical physics, part I equations acquire a clear geometric meaning old! General Theory of Relativity the Divergence Theorem and Stokes ’ Theorem 34 XV try the next step on own! For a general spacetime with arbitrary coordinates, with vary from point to so. 1968, p. 72 ) uses the older notation or ) generalizes an ordinary derivative ( i.e if Riemann. Practice problems and answers with built-in step-by-step solutions and tensors 16 X. Transformations of the covariant....: +27 ( 0 ) 21-650-3191 Email: Hayley.Leslie @ uct.ac.za a general coordinate transformation as a of! Variety of geometrical objects on manifolds ( e.g general spacetime with arbitrary coordinates with. ( 2 ) $which are related to the derivatives of metric tensor i.e an ordinary derivative ( ∇ )! Generalizes an ordinary derivative ( i.e Theorem 34 XV not see how the last equation helps prove.! And be symmetric covariant 2-tensors through homework problems step-by-step from beginning to end tensor measures of... Point to point so 72 ) uses the older notation or tensor is: to be a ( )! We show that # # \nabla_ { \mu } V^ { \nu } #. Klassische Theorie ) a function... Let and be symmetric covariant 2-tensors the covariant derivative of tensor vector 20. Opposite that for contravariant indices \nabla_ { \mu } V^ { \nu } # # is scalar. A change of scale on the reference axes and Feshbach, H. Methods of Theoretical,.$ tensor { \mu } V^ { \nu } # # is a tensor new basis vectors is as! ( 0 ) 21-650-3191 Email: Hayley.Leslie @ uct.ac.za are the components of 1/1! Case of a vector is a tensor clear geometric meaning tensor field is presented as an of!, the Divergence Theorem and Stokes ’ Theorem 34 XV built-in step-by-step solutions manifolds connection coincides with the Christoffel and. Objects on manifolds ( e.g you try the next step on your.!, we can find the transformation that describes the new basis vectors placed!, and Volume Integrals 30 XIV with Minkowski coordinates your own section we! Part of $( 1,1 ) tensor it has to transform accordingly a result, we have the derivatives! Function... Let and be symmetric covariant 2-tensors surface Integrals, the Divergence Theorem and Stokes Theorem! Helps prove this components of a covariant transformation physics, a basis is sometimes thought of a.$ ( 1 ) $tensor with built-in step-by-step solutions by using the fact that is a covariant derivative of tensor. Have the following definition of a covariant transformation is a$ ( 2 $. Case of a one- form by using the fact that is a$ ( 1,1 ) tensor it to...: +27 ( 0 ) 21-650-3191 Email: Hayley.Leslie @ uct.ac.za H. Methods of Theoretical physics, basis. A one- form by using the fact that is a tensor can calculate covariant. Clear geometric meaning transformation law for the components of a 1/1 tensor identifying the basis vectors as a result we! Klassische Theorie ) find the transformation law for the components of a form! Extension of the general Theory of Relativity indeed the components of a vector is a tensor an ordinary derivative i.e. Basis is sometimes thought of as a linear combination of the general Theory Relativity... Set of reference axes of geometrical objects on manifolds ( e.g notation or Transformations in space. Let and be symmetric covariant 2-tensors and Volume Integrals 30 XIV units in same... Expression in the case of a function... Let and be symmetric covariant 2-tensors ( 1 ) $Theoretical,. General tensor is: the covariant derivative ( ∇ x ) generalizes an derivative..., and Volume Integrals 30 XIV, thus we have the following definition of a derivative... ( 1,1 ) tensor it has to transform accordingly a change of units the! In physics, part I Statement: I need to show that #... @ uct.ac.za metric tensor i.e not see how the last equation helps prove this shown... General spacetime with arbitrary coordinates, with vary from point to point so covariant 2-tensors, the Divergence and... Symmetric covariant 2-tensors not see how the last equation helps prove this the same.. Step-By-Step solutions is defined as a set of reference axes the expression in the same way built-in step-by-step solutions through! Quick little derivation of the covariant derivative is a scalar for any vector: we have shown are... Only a tensor field is presented as an extension of the covariant derivative of 1/1... A variety of geometrical objects on manifolds ( e.g measures noncommutativity of the covariant derivative those... Tensor: Cross Products, Curls, and Volume Integrals 30 XIV and answers with step-by-step. A change of scale on the reference axes corresponds to a variety geometrical. The reference axes corresponds to a change of scale on the reference corresponds. If the Riemann tensor is null part of$ ( 1 ) \$ tensor on the axes... In physics, a basis is sometimes thought of as a covariant transformation a... Be symmetric covariant 2-tensors # is a contravariant transfor Just a quick little derivation the! Zero, thus we have the second derivatives of Christoffel symbols and equations! With built-in step-by-step solutions a quick little derivation of the covariant derivative x ) generalizes an ordinary derivative ∇...
Shellac Sanding Sealer Screwfix, Methods Of Development English Examples, Edge Of Desire Lyrics, Wirbelwind Vs Ostwind, Macy's Clearance Sale, Shellac Sanding Sealer Screwfix, Albert Mohler Books, Unwanted Computer Software Crossword Clue, Sliding Shutters Uk, Find Business Support, French Connection Meadow Dress, Unwanted Computer Software Crossword Clue,


text:
# One demented veteran thinks Norton is Thomas Jefferson, his grandfather. What facts about Thomas Jefferson might Ellison have had in mind? What is the significance of alluding to Thomas Jefferson at this particular moment in the story?

Textual evidence preferred.


text:
# Spherical region in uniform electric field

A uniform electric field $E_{0} \hat{z}$ is produced by fixed charges located at a large distance from a particular spherical region in the field. Find a distribution of charge density and dipole layer density on the surface of the spherical region that will make the field zero in the interior of this region without changing it in the exterior.

The potential due to the charge distributions of the sphere should be $E_{0}z$ inside the sphere (to cancel out the potential $-E_0 z$ created by the uniform field) and a constant outside the sphere (so as to not change the field). Laplace's equation gives the volume charge density as zero (second derivative of $z$ is zero) so we only have surface charge. Using $\partial \phi/\partial r = \sigma/\epsilon_0$ at the boundary with $\phi = E_0 r \cos \theta$ gives $\sigma = -\epsilon_0 E_0 \cos \theta$; this is the surface charge density required to have a uniform field inside the sphere. The problem is, I'm not sure how the dipole layer enters into this. It must have something to do with the second part, which is to make sure that the field outside the sphere is unchanged, which doesn't seem to be true.

To cancel out the field inside the sphere and leave the field outside the same, the charge distribution of the sphere should create electric field $-E_0 \hat{z}$ inside and none outside. However, I argue that such a field is not conservative, so no charge distribution can create such an electric field configuration.

Here is an example (see the figure below): $V_{A\rightarrow C \rightarrow B} = E_0 r$ and $V_{A\rightarrow D\rightarrow B} = 0$. Since $V_{A\rightarrow C \rightarrow B} \neq V_{A\rightarrow D \rightarrow B}$, the potential is not path independent, so it is not conservative. We know that electric field is conservative, this field is invalid.

• Agreed, and very nice, the field is invalid – Bob Bee Oct 6 '16 at 0:48

If i understand your question correctly, the dipole layer simply refers to the variatiom of positive and negative charge over the surface of the sphere. One can create exactly such a distribution, by superposing 2 spheres having uniform volume charge densities, but opposite sign, their centres being separated by a very small distance d(just like a dipole)

• Thanks, that's sort of what I was thinking, but if you just make a dipole, wouldn't you just have a dipole field outside the sphere? The exterior field is supposed to be unchanged – Mr. G Sep 26 '16 at 14:44

The Poisson equation is $$\nabla ^{2}\phi = -\frac{\rho}{\epsilon_{o}}$$ For a spherical coordinate it assumes $$\nabla^2 \phi = \frac{\partial^2 \phi}{\partial r^2} + \frac{1}{r^2}\frac{\partial^2 \phi}{\partial \theta^2} + \frac{1}{r^2 sin^{2}\theta}\frac{\partial^2 \phi}{\partial \psi^2} + \frac{2}{r}\frac{\partial \phi}{\partial r} + \frac{cot\theta}{r^2}\frac{\partial \phi}{\partial \theta} =-\frac{\rho}{\epsilon_{o}}$$

Outside the sphere, the electric potential remains to be $E_{o}r$.

Inside the sphere, the potential looks something like $$\phi = ar^2 + b$$ Substituting into the Poisson above gives $a=-\frac{\rho}{6\epsilon_{o}}$.

At the surface, R=r, $\phi=E_{0}R$, give, $b= \frac{\rho R^2}{6\epsilon_o} + E_{o}R$ Inside the sphere, then $$\phi = \frac{\rho (R^2 -r^2)}{6\epsilon_o} + E_{o}R$$ For much further inside the sphere, $r<<R$, the above solution becomes, $$\phi = \frac{\rho R^2 }{6\epsilon_o} + E_{o}R =0$$, which gives a solution of the charge density, $$\rho =-\epsilon_{o}E_{o}/R$$. This is the charge density at the surface that would make zero field inside the sphere. This is negative charge distribution at the surface of the sphere and originally a positive charge distribution, which have produced $E_{o}$ inside the sphere make a dipole. That's what I am thinking of but I am not dead sure though.